【问题标题】:How to change a char into a string?如何将一个字符变成一个字符串?
【发布时间】:2013-09-09 08:14:15
【问题描述】:
char middle;
printf("What is your middle name? ");       
scanf(" %c", &middle);      
printf("Your middle name is %c \n\n", middle); 

所以我正在尝试制作一个简单的程序,它要求输入名称然后将其打印出来,但它只返回一个字符,我知道 %c 是用于字符的,但是我必须做些什么才能获得完整的姓名?在此先感谢,抱歉这么愚蠢的问题,只是一个初学者:)

【问题讨论】:

  • 查看scanf() 的格式说明符以及每个提供的内容。他们在某种程度上为您说明了这一点。

标签: c input printf


【解决方案1】:

为多个字符预留空间:

char middle[32];

并扫描和打印字符串:

if(scanf("%31s", middle) == 1)
  printf("Your middle name is %s\n, middle);

【讨论】:

  • +1 具有最大字段宽度和 scanf 的返回值检查
  • @user694733 谢谢。我尝试展示一些“良好做法”,感觉很有帮助。
【解决方案2】:

你只会得到一个字符,如果你想要一个完整的单词,你应该使用"%s"作为你的格式字符串。只要您输入的字符数不超过 50 个,以下代码将为您提供中间名(尝试输入超过 50 个字符,看看会发生什么!)。

char middle[50];
scanf("%s", middle);

然后打印结果:

printf("Middle name is %s", middle);

【讨论】:

    【解决方案3】:
    char* middle=malloc(EXPECTED_NAME_LENGTH+1);
    printf("What is your middle name? ");       
    scanf(" %s", middle);      
    printf("Your middle name is %c \n\n", middle);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-17
      • 2013-05-15
      • 2015-05-02
      • 1970-01-01
      • 2013-12-25
      • 1970-01-01
      • 2020-01-29
      相关资源
      最近更新 更多