#include #include #define MAX_STRING 200 int main(void) { int i = 0; int j = 0; char str[MAX_STRING] = { 0 }; int length = 0; char tmp = 0; int start = 0; int end = 0; i = 0; printf("Input riginal string:\n"); gets(str); length = strlen(str); start = 0; end = length - 1; /* 将整个字符串翻转 */ while (start < end) { /* 交换两个元素值 */ tmp = str[start]; str[start] = str[end]; str[end] = tmp; /* 改变索引值 */ ++start; --end; } printf("Step 1:\n"); puts(str); i = 0; start = 0; /* 依次翻转其中的每一个单词 */ while (i < length) { /* 翻转其中的一个单词 */ if (str[i] != ' ') { /* 找到单词开头 */ start = i; while (str[i] != ' ' && str[i] != '\0') /* 找到单词结尾 */ ++i; end = i - 1; while (start < end) { /* 交换两个元素值 */ tmp = str[start]; str[start] = str[end]; str[end] = tmp; /* 改变索引值 */ ++start; --end; } } ++i; } printf("Step 2:\n"); puts(str); return 0; }