C++ 单词翻转
描述:输入一个句子(一行),将句子中的每一个单词翻转后输出。输入:只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。输出:翻转每一个单词后的字符串,单词之间...
描述:输入一个句子(一行),将句子中的每一个单词翻转后输出。
输入:只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。
输出:翻转每一个单词后的字符串,单词之间的空格需与原文一致。
样例输入:hello world
样例输出:olleh dlrow
#include<iostream>
using namespace std;
char s[501];
char*p=s;
void f()
{
char temp;
if(*(p+1)<'A'||(*(p+1)>'Z'&&*(p+1)<'a')||*(p+1)>'z')
{
cout<<*p;
return;
}
temp=*(p++);
f();
cout<<temp;
}
int main()
{
cin.getline(s,500);
while(1)
{
f();
p++;
if(*p<'A'||(*p>'Z'&&*p<'a')||*p>'z')
{
if(*p=='\0')
{
cout<<endl;
break;
}
cout<<*p;
p++;
}
}
cout<<endl;
return 0;
}
我的代码在输入hello world aab时输出为olleh dlrow baa,求教如何修改 展开
输入:只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。
输出:翻转每一个单词后的字符串,单词之间的空格需与原文一致。
样例输入:hello world
样例输出:olleh dlrow
#include<iostream>
using namespace std;
char s[501];
char*p=s;
void f()
{
char temp;
if(*(p+1)<'A'||(*(p+1)>'Z'&&*(p+1)<'a')||*(p+1)>'z')
{
cout<<*p;
return;
}
temp=*(p++);
f();
cout<<temp;
}
int main()
{
cin.getline(s,500);
while(1)
{
f();
p++;
if(*p<'A'||(*p>'Z'&&*p<'a')||*p>'z')
{
if(*p=='\0')
{
cout<<endl;
break;
}
cout<<*p;
p++;
}
}
cout<<endl;
return 0;
}
我的代码在输入hello world aab时输出为olleh dlrow baa,求教如何修改 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询