如何根据字符串长度打印?

时间:2015-10-24 11:34:38

标签: c pointers

我正在尝试打印这样的模式:

C    C++  Java Java 
Java Java C    C++

在上面分配给最大字符的模式空间

char *str1 = "C";
char *str2 = "C++";
char *str3 = "Java";

printf("%s ", str1);printf("%s ", str2);printf("%s ", str3);printf("%s ", str3);
printf("\n%s ", str3);printf("%s ", str3);printf("%s ", str1);printf("%s ", str2);

我尝试使用字符长度并将长度附加到字符指针但是没有成功。

1 个答案:

答案 0 :(得分:1)

您需要一种方法来确定任何列中最长的字符串。然后你可以使用

printf ("%*s ", longestWordInColumn, aColumnEntry[y]);
每列的

,其中longestWordInColumn保持此长度。

为了使每个列的任何条目列表有效,你需要在字符串数组上循环几次,这表明使用了数组。

如果您的字符串都已修复,如您的示例所示,那么您只需手动计算字符串的长度,确定每列最长,并使用固定宽度:

 printf ("%-10s ", someString);

其中10是实际数字的占位符。