#include <stdio.h>
#include <stdlib.h>
int main(){
char chs[100];
gets(chs);
int length = 0;
for (; chs[length] != ‘\0‘; ++length); //求出字符串的总长度
for (int i = 0; i < length / 2; ++i){ //将整个字符串串翻转过来
char tmp = chs[i];
chs[i] = chs[length - 1 - i];
chs[length - 1 - i] = tmp;
}
int index1, index2; //分别为目前单词的第一个字母和最后一个字母的位置
for (int i = 0; i < length; ++i){
//第一个字符不为空格,产生新单词
//前一字符为空,当前字符不为空,产生新单词
if (((i == 0) && (chs[i] != ‘ ‘)) || ((chs[i] != ‘ ‘) && (chs[i - 1] == ‘ ‘)))
index1 = i;
//最后一个字符不为空格,结束一个单词
//当前字符不空,后一字符为空,结束一个单词
if (((i == length - 1) && (chs[i] != ‘ ‘)) || ((chs[i] != ‘ ‘) && (chs[i + 1] == ‘ ‘))){
index2 = i;
for (int j = index1; j <= index2 / 2; ++j){ //将本单词翻转过来
char tmp = chs[j];
chs[j] = chs[index1 + index2 - j];
chs[index1 + index2 - j] = tmp;
}
}
}
for (int i = 0; i < length; ++i)
printf("%c",chs[i]);
printf("\n");
system("pause");
return 0;
}
原文:http://www.cnblogs.com/mutaohengheng/p/5108034.html