scanf()在用户输入时如果输入的内容带空格,那个空格后面的数据全部会丢失
#include<string.h>
#include<stdio.h>
int main()
{
char ch[128];
scanf("%s",ch); //输入: "c语言 字符串"
printf("len=%d\n",strlen(ch));//输出: "len=5"
puts(ch); //输出: "c语言"
return 0;
}
要想解决这个问题就得用gets();
#include<string.h>
#include<stdio.h>
int main()
{
char ch[100];
gets(ch); //输入: "c语言 字符串"
printf("len=%d\n",strlen(ch));//输出: "len=12"
puts(ch); //输出: "c语言 字符串"
return 0;
}
但是如果在linux环境下没有gets(),就可以自己写一个gets()
void mygets(char *p)
{
if(!p){
printf("space failure\n");
exit(-1);
}
*p=getchar();
while((*p)!='\n'){
p++;
*p=getchar();
}
*p='\0';
}