发布:admin2025-06-06 16:31:13 5136条浏览分类:世界杯直播网
浅谈:C语言写程序时,因为没有字符串数据类型,所以字符串和字符串数组的输入也是一个难题和陷阱,这里讨论一下几种字符串输入情况。
字符串输入函数: 1.格式输入函数:int scanf("%s",字符数组名或指针); 2.字符串输入函数:char* gets(字符数组名或指针); (1)相同点:字符串接受结束后自动加’\0’。 (2)不同点(容易出错): ①scanf :当遇到回车,空格和tab键就认为输入结束,会自动在字符串后面添加’\0’;但是回车、空格和tab键仍会留在输入的缓冲区中(如果连续多次scanf输入的话要注意考虑上一次scanf后的缓冲区有无”垃圾“),只至遇到回车就停止输入。(适用于输入没有空格、tab的字符串)
如
char s[20],str[20];
scanf("%s",s); //若输入“Hel lo,World!” 空格认为第一个scanf输入结束,后面输入的字符留在缓冲区送给下一次scanf
scanf("%s",str);
printf("s=%s str=%s",s,str); //输出s=Hel str=lo,World!
若想去掉上一次scanf后缓冲区留下的“垃圾”,可以使用gets()
char s[20],str[20],temp[20];
scanf("%s",s); //输入“Hel lo,World!”
gets(temp); //temp= lo,World!
scanf("%s",str); //输入“Hel lo,World!”
printf("s=%s str=%s",s,str); //输出s