单词反转
描述
输入一个句子(一行),将句子中的每一个单词翻转后输出。
输入只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。输出翻转每一个单词后的字符串,单词之间的空格需与原文一致。样例输入
hello world
样例输出
olleh dlrow
#include<stdio.h>
#include<string.h>
char c[505];
void swap(int a,int b);
int main()
{
int a=0;
int i;
gets(c);
for (i=0;i<=strlen(c);i++)
{
if (c[i]==' '||c[i]=='\0')
{
swap(a,i-1);
a=i+1;
}
}
puts(c);
return 0;
}
void swap(int a,int b)
{
char t;
int i,j;
for (i=a,j=b;i<=j;i++,j--)
{
t=c[i];
c[i]=c[j];
c[j]=t;
}
}
附录1:一个单词反序输出
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
string str;
cin>>str;
reverse(str.begin(),str.end());
for(int i=0;i<str.size();i++)
cout<<str[i];
return 0;
}
附录2:整句话以及每个单词都反序
void reverse(char *p)
{
if(*p=='\0') return;
reverse(p+1);
printf("%c",*p);
}
int main()
{
char str[100];
gets(str);
reverse(str);
printf("\n");
return 0;
}
浙公网安备 33010602011771号