C 编程:将两个字符串输出为彼此相邻的两列

作者:编程家 分类: arrays 时间:2025-09-14

使用C编程实现字符串对齐输出

在C编程中,字符串是常见的数据类型之一,而对于程序员来说,有时需要将两个字符串以相邻的两列形式输出,以便更清晰地比较它们。本文将介绍如何使用C语言实现这一功能,并提供一个简单的案例代码。

### 字符串对齐输出的需求

在一些应用场景中,比较两个字符串的内容是非常常见的任务。为了使比较更加直观,有时候我们希望将两个字符串以列的形式显示,这样它们的相同部分能够对齐,方便观察和分析。

### 实现思路

要实现两个字符串的对齐输出,首先需要确定输出的宽度,即每列的最大宽度。然后,将两个字符串逐个字符地输出到相应的列中,当其中一个字符串结束时,补充空格以保持对齐。

### 示例代码

下面是一个简单的C程序,演示了如何实现字符串对齐输出:

c

#include

#include

void alignStrings(const char *str1, const char *str2) {

// 计算两个字符串的最大长度

int len1 = strlen(str1);

int len2 = strlen(str2);

int maxLength = (len1 > len2) ? len1 : len2;

// 输出表头

printf("%-*s%%t%-*s%

", maxLength, "String 1", maxLength, "String 2");

// 逐字符输出两个字符串,以列对齐

for (int i = 0; i < maxLength; ++i) {

if (i < len1) {

printf("%-*c%%t", maxLength, str1[i]);

} else {

printf("%-*c%%t", maxLength, ' ');

}

if (i < len2) {

printf("%-*c%

", maxLength, str2[i]);

} else {

printf("%-*c%

", maxLength, ' ');

}

}

}

int main() {

const char *string1 = "Hello";

const char *string2 = "World";

// 输出两个字符串的对齐形式

alignStrings(string1, string2);

return 0;

}

### 代码解析

1. `alignStrings` 函数负责对齐输出两个字符串,其中使用了 `%-*s` 格式控制符来确保输出的宽度为 `maxLength`。

2. 在 `main` 函数中,我们定义了两个示例字符串 "Hello" 和 "World",并调用了 `alignStrings` 函数进行对齐输出。

通过运行上述代码,你将看到输出如下:

String 1%tString 2

H%t W

e%t o

l%t r

l%t l

o%t d

这样,我们成功地将两个字符串以彼此相邻的两列形式输出,并且通过补充空格保持了对齐。这种对齐方式使得字符串的比较和观察变得更加直观和方便。