1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 5 void print_reverse(char a[], int k); 6 void swap(char& a, char& b); 7 8 int main(void) { 9 int T; 10 char words[1005]; 11 12 scanf("%d ", &T); 13 while (T--) { 14 gets_s(words); 15 int len = strlen(words); 16 int left = 0, right = 0;//left和right是一个单词的左右端 17 int next_start;//下一次开始的位置 18 19 while (right < len) { 20 while (words[right] != ' ' && right < len) right++; 21 next_start = right;//此时的a[right]是空格,或者结尾 22 next_start++;//从空格的下一位开始 23 right--;//此时right是单词末尾 24 while (left < right) swap(words[left++], words[right--]); 25 left = right = next_start; 26 } 27 28 for (int i = 0; i < len; i++) printf("%c", words[i]); 29 printf("\n"); 30 } 31 32 return 0; 33 } 34 35 void swap(char& a, char& b) { 36 char t = a; 37 a = b; 38 b = t; 39 }
gets()函数读取到
‘\n’(我们输入的回车)于是停止读取,但是它不会把\n包含到字符串里面去。。。这个注意了! 在输入字符串或字符前,scanf()之后需要读入回车,但是gets()函数不需要,就是这个原因