单词反转
描述
输入一个句子(一行),将句子中的每一个单词翻转后输出。
输入只有一行,为一个字符串,不超过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; }