一个C语言字符串输入问题

如题所述

int
main()
{
char
s[50],s1[50],*s2;
gets(s);
s2=gets(s1);
printf("%s\n",s);
printf("%s\n",s1);
printf("%s\n",s2);
short
i;
cin>>i;
return
0;
}

s1和s2是一样的

getc的原型

int
getc(
FILE
*stream
);

它是从
文件流
里面获取并返回下一个字符,如果到达文件尾返回EOF与fgetc是一致的

getchar
的原型

int
getchar(
void
);
从标准输入获取并返回下一个字符,如果到达末尾返回EOF

gets的原型

char
*gets(
char
*str
);

gets()函数从标准输入读取字符并把它们加载到str(字符串)里,直到遇到新行(\n)或到达EOF.
gets()的
返回值
是读入的字符串,如果错误返回NULL.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-03-17
是滴,你如果是用scanf的话只要有空格就会当成输入完毕,你把scanf("%s",s1);
scanf("%s",s2);
分别改成gets(s1);gets(s2);就没问题了
第2个回答  2019-12-18
你写的程序就是这样的啊,当然就这样输出了

#include<stdio.h>
void
main(){
char
s1[50],s2[50];
scanf("%s",s1);
scanf("%s",s2);
printf("%s\n",s1);
printf("%s\n",s2);}

你要输人的话也不是这样输的啊
scanf("%s",s1);
只是给s1[0]输入了值;
scanf("%s",s2);
也是一样
第3个回答  2020-04-13
scanf("%s",s1);
scanf("%s",s2);//你不是用了两个输入吗,而在cmd下就是以空格来区分其参数的

//不管是一个空格还是几个空格都一样
相似回答