使字符串中字符的位置静态,这样它就不会移动
Making the position of a character in a string static, so that it won't move
我是 C 编程新手。
我想做的是找到一种方法来冻结 printf 语句中的“|”,主要是代码右侧的那些。
正如您在代码中看到的那样,如果我在生成可变数量字符的 printf 语句中放入任何内容,它会根据生成的字符数量移动“|”。
所以我希望看看是否有人可以帮助我解决这个问题,这样 printf 中生成的内容就不会改变“|”的位置。
这是代码,以便你们了解我在说什么。
#include <stdio.h>
int main ()
{
char Employee1_NameF[20];
char Employee1_NameL[20];
printf("Employee Name: ");
scanf("%s %s", &Employee1_NameF,&Employee1_NameL);
printf(" __________________________________________________________________________________________________ \n");
printf("| |\n");
printf("| |\n");
printf("|--------------------------------------------------------------------------------------------------|\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");;
printf("|__________________________________________________________________________________________________|\n");
printf("|--------------------------------------------------------------------------------------------------|\n");
printf("| THE FACE OF THIS DOCUMENT HAS A MULTICOLORED BACKGROUND ON WHITE PAPER |\n");
printf("|--------------------------------------------------------------------------------------------------|\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| %s %s |\n", Employee1_NameF, Employee1_NameL);
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("|__________________________________________________________________________________________________|\n");
}
我不会破坏你的学习乐趣,只是给出一些提示。
strlen
和 %<width>s
以及 %<-width>s
格式字符串中的说明符是您的朋友。阅读它们可能会对您有所帮助。
例如比较
的输出
printf("<%8s%8s>\n", "foo", "bar");
v/s
printf("<%-8s%-8s>\n", "foo", "bar");
v/s
printf("<%s%s>\n", "foo", "bar");
并使用一些数学知识。
实现此功能的另一种方法是准备要动态打印的固定长度字符串。
您可能还想阅读 Centering strings with printf()
我是 C 编程新手。
我想做的是找到一种方法来冻结 printf 语句中的“|”,主要是代码右侧的那些。
正如您在代码中看到的那样,如果我在生成可变数量字符的 printf 语句中放入任何内容,它会根据生成的字符数量移动“|”。
所以我希望看看是否有人可以帮助我解决这个问题,这样 printf 中生成的内容就不会改变“|”的位置。
这是代码,以便你们了解我在说什么。
#include <stdio.h>
int main ()
{
char Employee1_NameF[20];
char Employee1_NameL[20];
printf("Employee Name: ");
scanf("%s %s", &Employee1_NameF,&Employee1_NameL);
printf(" __________________________________________________________________________________________________ \n");
printf("| |\n");
printf("| |\n");
printf("|--------------------------------------------------------------------------------------------------|\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");;
printf("|__________________________________________________________________________________________________|\n");
printf("|--------------------------------------------------------------------------------------------------|\n");
printf("| THE FACE OF THIS DOCUMENT HAS A MULTICOLORED BACKGROUND ON WHITE PAPER |\n");
printf("|--------------------------------------------------------------------------------------------------|\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| %s %s |\n", Employee1_NameF, Employee1_NameL);
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("| |\n");
printf("|__________________________________________________________________________________________________|\n");
}
我不会破坏你的学习乐趣,只是给出一些提示。
strlen
和 %<width>s
以及 %<-width>s
格式字符串中的说明符是您的朋友。阅读它们可能会对您有所帮助。
例如比较
的输出printf("<%8s%8s>\n", "foo", "bar");
v/s
printf("<%-8s%-8s>\n", "foo", "bar");
v/s
printf("<%s%s>\n", "foo", "bar");
并使用一些数学知识。
实现此功能的另一种方法是准备要动态打印的固定长度字符串。
您可能还想阅读 Centering strings with printf()