如何将char更改为字符串?

时间:2013-09-09 08:14:15

标签: c input printf

char middle;
printf("What is your middle name? ");       
scanf(" %c", &middle);      
printf("Your middle name is %c \n\n", middle); 

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

3 个答案:

答案 0 :(得分:4)

为多个角色预留空间:

char middle[32];

并扫描和打印字符串:

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

答案 1 :(得分:1)

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

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

然后打印结果:

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

答案 2 :(得分:1)

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);