#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; }