我正在尝试打印这样的图案:
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);
我尝试使用字符长度并将长度附加到字符指针,但没有成功。
最佳答案
您需要一种方法来确定任何列中最长的字符串。然后就可以使用
printf ("%*s ", longestWordInColumn, aColumnEntry[y]);
对于每一列,其中 longestWordInColumn
保存此长度。
要使其适用于每列的任何条目列表,您需要在字符串数组上循环几次,这建议使用数组。
如果您的字符串都是固定的,如您的示例所示,那么您所需要做的就是手动计算字符串的长度,确定每列的最长长度,并使用固定宽度:
printf ("%-10s ", someString);
其中 10
是实际数字的占位符。
关于c - 如何根据字符串长度打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33317695/