标题:为什么输入字符串时,中间加空格,就只能输出空格前面的?
只看楼主
柴晓晋
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2013-2-3
结帖率:88.89%
已结贴  问题点数:2 回复次数:4 
为什么输入字符串时,中间加空格,就只能输出空格前面的?
#include<stdio.h>
#define change 1
 main()
{int i;
char s[80];
printf("请输入原文:");
scanf("%s",s);
#if change
{for(i=0;i<=80;i++)
   {if(s[i]!='\0')
if(s[i]>'A'&&s[i]<'Z'||s[i]>'a'&&s[i]<'z')
s[i]=s [i]+1;
else  if(s[i]=='Z'||s[i]=='z')
s [i ]=s-25;}
printf("%s",s);
}
#else
printf("%s",s);
#endif
 }
搜索更多相关主题的帖子: include change 字符串 
2013-04-03 12:37
你不想去那儿
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:56
专家分:114
注 册:2012-9-21
得分:1 
#if change,预处理吗?
用一般的if就行了吧!
在scanf中空格就是表示一个字符串已经输入完毕!
2013-04-03 12:45
新手而已
Rank: 2
等 级:论坛游民
帖 子:35
专家分:55
注 册:2013-3-21
得分:1 
这是因为scanf函数只将字符串中第一空格前的字符串 输入到字符数组中,所以输出字符串时只输出了空格前面的。为了解决scanf函数不能完整的读入带有空格的字符串,c语言专门提供了一个字符串函数gets,他可以读入包括空格的字符串,至遇到回车符为止。

正在专攻C语言中。。。
  能帮到的就这点。。。
2013-04-03 13:02
Emily_CYY
Rank: 2
等 级:论坛游民
帖 子:22
专家分:13
注 册:2013-4-1
得分:1 
因为用的是scanf啊。。这个函数遇到第一个空格就不在读入了,
但是用gets()就是遇到回车才结束
2013-04-03 22:21
yctchxf
Rank: 6Rank: 6
来 自:盐城
等 级:侠之大者
威 望:2
帖 子:176
专家分:454
注 册:2012-4-10
得分:1 
scanf() 如果有多个变量的时候,在输入时,空格是区分各各变量的输入的。
所以基于你的这个要求要用gets()
2013-04-03 22:52



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-402951-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.083390 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved