gpt4 book ai didi

c - 多个格式说明符的 printf 对齐

转载 作者:太空宇宙 更新时间:2023-11-04 04:25:35 39 4
gpt4 key购买 nike

如何使用 printf 函数对齐说出以下文本假设我想要期望的输出

void print() {
printf("%s %s %d %c\n",firstName, lastName, age, gender);
}

成为:

Foo Foo     15     M

Bob Bob 16 F

John John 12 M

我遇到的问题是因为名字 John 较长,它会将下一个说明符向下推一点。我希望它们对齐,以便每一行都按顺序排列。

最佳答案

将名字和姓氏复制到一个临时字符串中。然后将其传递给 printf,使用 %s 上的字段宽度足够大以适合全名,并使用 - 标志左对齐。

void print(char *first, char *last, int age, char gender)
{
int len = strlen(first) + strlen(last) + 1;
char name[len+1];
strcpy(name, first);
strcat(name, " ");
strcat(name, last);
printf("%-20s %2d %c\n",name, age, gender);
}

使用您的样本输入,输出:

Foo Foo              15    M
Bob Bob 16 F
John John 12 M

关于c - 多个格式说明符的 printf 对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41915473/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com