(c语⾔)如何输⼊⼀串字符串
A  问题:在⽤C语⾔ 如何输⼊⼀串 字符串呢?
B 解决⽅案:
c语言如何去学1 直接⽤scanf("%s") 来实现
int main()
{
char str[10] = { 0 };
scanf("%s", str);
printf("%s", str);
return 0;
}
但是当遇到含有空格的字符串时只会记录空格前的字符⽽略去空格之后的字符。解决这个问题于是我们还有其他的⽅法。
2.1 使⽤⼀个while循环
int main()
{
char str1[10] = { 0 };
int i = 0;
while ((str1[i] = getchar()) != '\n') {
++i;
}
str1[i] = '\0';
printf("%s", str1);
return 0;
}
赋值运算的结果是它的左侧运算对象,相应的,结果的类型也是左侧运算对象的类型。则while循环的退出条件就是当str1[i]=='\n'时退出,当然你可以改变'\n'成你需要的结束字符。
2.2 使⽤⽂件结束符来结束while循环
int main()
{
char str[10] = { 0 };
int i=0;
//while( ~scanf("%c",&str[i]))
while((str[i]=getchar()) != EOF)
{
++i;
}
str[i] = '\0';
printf("%s",str);
return 0;
}
windows敲ctrl+z然后按Enter键;UNIX中,⽤ctrl+D来输⼊⽂件结束符[EOF (-1)]。对于scanf()函数返回值为int型,如果遇到错误或者end of file,返回值为EOF,-1取反(~)得到0,判断条件为假结束循环。
3. 使⽤gets()函数
int main()
{
char str[15] = { 0 };
gets(str);
printf("%s", str);
return 0;
}
函数从给定的输⼊流中读⼊内容,直到遇到换⾏符为⽌(注意换⾏符也被读进来了),然后把所读内容存⼊到str中去(注意不存换⾏符)。