我是 C 新手,我试图弄清楚如何创建由按长度排列的 char[] 和整数混合组成的单独字符串 (char[]) -
例如,如果我有 char[] 名字、char[] 姓氏和 int 年龄,我需要将它们全部放在 1 行相同长度的示例中 -
乔 |史密斯 |45
艾米|脚|2
每一行都有自己的 char[] 并排列起来。
这是我到目前为止的代码 -
while(temp != NULL)
{
char listLine[IDLEN + FOODNAMELEN + DESCLEN + 10];
char * id = temp->data->id;
char * name = temp->data->name;
int dollars = temp->data->price.dollars;
int cents = temp->data->price.cents;
sprintf(listLine,"%s |%s |$%d.%d\n", id, name, dollars, cents);
printf("%s",listLine);
temp = temp->next;
}
这工作正常,但我似乎无法排列 |彼此之间。
我对堆栈交换还是新手,所以我不确定如何标记为作业...但是是的,这是作业。
任何帮助都会很棒。
谢谢
最佳答案
您可以将宽度说明符与printf
一起使用格式说明符。
示例:
printf("%3d | %10s", 32, "Hello");
将打印
_32 | _____你好
哪里_
(下划线)代表空格
您还可以使用 printf("%*d", width, 32);
将宽度指定为参数。 width
可以由您正在打印的字符串的长度确定。字符串的最大长度可以是您想要的宽度。对于数字,您可以假设任何数字(32 位数字)都不会超过 10 位(232 以十进制表示有 10 位数字)
参见this
关于在 C 中通过混合 char[] 和 int 创建字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23880810/