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

标签 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);

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

最佳答案

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

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

对于每一列,其中 longestWordInColumn 保存此长度。

要使其适用于每列的任何条目列表,您需要在字符串数组上循环几次,这建议使用数组。

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

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

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

关于c - 如何根据字符串长度打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33317695/

相关文章:

c - "R CMD SHLIB"多个.c和.f文件怎么办

c - 指向指针取消引用的指针

c - 在 32 位 C 编译器上,sizeof(*NULL) 如何等于 1?

c - 指向二维数组并在 C 语言的其他函数中声明的指针

c - 如何使用 CMake 链接到 C 数学库?

c - 在 C 中使用 winmm 库

python - 意外的格式字符串行为

c - C 中的 strtok 和传递参数

c - 如何打印内存地址?

c - 指针的指针在这段 C 代码中如何工作?