处理包含空格的字符数组

时间:2015-03-11 21:33:27

标签: c arrays io char spaces

我正在制作一个让你输入你的名字的程序,然后程序将它放入一个正方形。例如,对于输入"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("*");

1 个答案:

答案 0 :(得分:0)

当你有一个字符数组如下

char name[500];

您可以输入包含除\n之外的任何字符的字符串,如下所示

int i;
for(i=0;(name[i]=getchar())!='\n';i++);
name[i]='\0';  //null termination

假设数组的长度足以存储名称。