c - 处理包含空格的字符数组

标签 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("*");

最佳答案

当您有如下字符数组时

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/

相关文章:

java - 我的数组中发生了奇怪的事情

arrays - 用户按下按钮(保存)后如何从照片库中打开并选择照片

linux - 和 hdparm 一样,如何从 fio 命令计算磁盘速度

c++ - C中的静态变量初始化

c - 是否可以恢复被杀死的子进程?

c++ - 指针和指针的地址如何共享相同的内存地址?

file - 如何使用 Haskell 分割 110Mo 文件

C++:如何在文件的输入和输出之间切换?

c - 如何优化这个 Langton's ant sim?

c - 为什么在打印特定范围的素数后会得到内存位置值?