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

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

4

3 回答 3

4

为多个字符预留空间:

char middle[32];

并扫描和打印字符串:

if(scanf("%31s", middle) == 1)
  printf("Your middle name is %s\n, middle);
于 2013-09-09T08:17:23.903 回答
1

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

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

然后打印结果:

printf("Middle name is %s", middle);
于 2013-09-09T08:17:15.867 回答
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);
于 2013-09-09T08:18:35.230 回答