c语言中如何输入带有空格的字符串?

c语言中如何输入带有空格的字符串?

问题描述:

很多初学c语言的小伙伴不知道如何输入带空格的字符串,scanf输入字符串时总是在空格处停止扫描。例如:我们用scanf("%s",str);输入 “I love you!” 字符串后,str输出却只有 “I” ,这并不是我们想要的。这是因为scanf扫描到 “I” 后面的空格,就认为对str的扫描结束(即空格没有被扫描),并舍弃后面的" love you!",只得到了 “I” 。

#include

#include

int main()

{

char a[1000];

int i,n;

scanf("%s",a);

n= strlen(a);

for(i=0;i

{

printf("%c",a[i]);

}

return 0;

}

提示:scanf输入字符串时总是在空格处停止扫描。其中%s输入字符串,%c输入单个字符。

解决方案:

方法一:

#include

#include

int main()

{

char a[1000];

int i,n;

scanf("%[^\n]",a);

n= strlen(a);

for(i=0;i

{

printf("%c",a[i]);

}

return 0;

}

提示:使用scanf("%[^\n]",a);进行输入,意思是一直输入直到用户使用换行为止。

方法二:

#include

#include

int main()

{

char a[1000];

gets(a);

puts(a);

return 0;

}

提示:使用gets(),puts();完成带空格的字符串的输入输出

方法三:

#include

int main(void)

{

char c;

while((c=getchar())!='\n')

printf("%c",c);

return 0;

}

相关推荐

造梦西游3饰品大全(造梦3饰品排名?)
世界杯365网站打不开

造梦西游3饰品大全(造梦3饰品排名?)

📅 06-29 👁️ 859
卡西欧oh什么意思
365bet最新备用网站

卡西欧oh什么意思

📅 07-09 👁️ 218
王者荣耀貂蝉和露娜哪个好 貂蝉还是露娜对比攻略
365bet最新备用网站

王者荣耀貂蝉和露娜哪个好 貂蝉还是露娜对比攻略

📅 07-01 👁️ 7106
武神前传命格怎么选(武神传说先天属性如何增加)
mobile365体育投注

武神前传命格怎么选(武神传说先天属性如何增加)

📅 06-28 👁️ 8022
高的成语
mobile365体育投注

高的成语

📅 07-05 👁️ 9519
56位奥特曼大全览,童年的英雄依旧在战斗,你还记得他们么?