我正在开发一个程序,让你输入你的名字,然后程序将其放入一个正方形中。例如,对于输入 "Zyad"
我期望输出:
********
| |
| Zyad |
| |
********
现在我希望能够输入两个名字(例如名字和姓氏)并获得相同类型的输出。
“Zyad Sabry”的输入
将产生
**************
| |
| Zyad Sabry |
| |
**************
我的代码:
scanf("%s",name);
n = strlen(name);
printf(" ");
for(i=0;i<n+4;i++)
printf("*");
printf("\n");
printf("|");
for(i=0;i<n+4;i++)
printf(" ");
printf("|");
printf("\n");
printf("|");
for(i=0;i<(n+4)-n-2;i++)
printf(" ");
printf("%s |");
printf("\n");
printf("|");
for(i=0;i<n+4;i++)
printf(" ");
printf("|");
printf("\n");
printf(" ");
for(i=0;i<n+4;i++)
printf("*");
最佳答案
当您有如下字符数组时
char name[500];
您可以输入包含除 \n
之外的任何字符的字符串,如下所示
int i;
for(i=0;(name[i]=getchar())!='\n';i++);
name[i]='\0'; //null termination
假设数组的长度足以存储名称。
关于c - 处理包含空格的字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28997807/