麻烦各位看一下要怎么改 C++新手

七叶林 2014-10-17 05:57:12
Description:
将字母的大小写转换一下,非字母字符原样输出。

Sample Input:
I like ACM/ICPC.
Hello World!
+-*/ are operators.
Sample Output:
i LIKE acm/icpc.
hELLO wORLD!
+-*/ ARE OPERATORS.
下面是代码
#include<iostream>
#include<string>
using namespace std;
int main()
{
int i;
string s;
while(cin>>s)
{
for(i=0;i<s.length();i++)
{
if(s[i]>='a'&&s[i]<='z')
s[i] = s[i]-'a'+'A';
else if(s[i]>='A'&&s[i]<='Z')
s[i] = s[i]-'A'+'a';
else if(s[i]==' ')
s[i] = ' ';
}
cout<<s<<endl;
}
return 0;
}
麻烦看一下 运行时总是遇见空格就换行 怎么比如输入“hfkalj jkllhla”还能输出后不被换成两行
...全文
165 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
自信男孩 2014-10-20
  • 打赏
  • 举报
回复
cin.getline应该可以解决你这个问题。
七叶林 2014-10-20
  • 打赏
  • 举报
回复
你好 这个在vc6.0下要按两次enter键才有运行结果 如何能够使一次enter间就有运行结果
百曉生 2014-10-17
  • 打赏
  • 举报
回复
百曉生 2014-10-17
  • 打赏
  • 举报
回复
#include<iostream>
#include<string>
using namespace std;
int main()
{
	int i;
	string s;
	while(getline(cin,s))//////////////
	{
		for(i=0;i<s.length();i++)
		{
			if(s[i]>='a'&&s[i]<='z')
				s[i] = s[i]-'a'+'A';
			else if(s[i]>='A'&&s[i]<='Z')
				s[i] = s[i]-'A'+'a';
		}
		cout<<s;  /////////////
	}
	return 0;
}
铖邑 2014-10-17
  • 打赏
  • 举报
回复
这是因为遇到空格cin输入就结束,输出endl然后进入下一次循环

64,281

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧