我正在尝试打印这样的模式:
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);
我尝试使用字符长度并将长度附加到字符指针但是没有成功。
答案 0 :(得分:1)
您需要一种方法来确定任何列中最长的字符串。然后你可以使用
printf ("%*s ", longestWordInColumn, aColumnEntry[y]);
每列的,其中longestWordInColumn
保持此长度。
为了使每个列的任何条目列表有效,你需要在字符串数组上循环几次,这表明使用了数组。
如果您的字符串都已修复,如您的示例所示,那么您只需手动计算字符串的长度,确定每列最长,并使用固定宽度:
printf ("%-10s ", someString);
其中10
是实际数字的占位符。