題目地址:https://pintia.cn/problem-sets/994805260223102976/problems/994805314941992960ios
給定一句英語,要求你編寫程序,將句中全部單詞的順序顛倒輸出。函數
測試輸入包含一個測試用例,在一行內給出總長度不超過 80 的字符串。字符串由若干單詞和若干空格組成,其中單詞是由英文字母(大小寫有區分)組成的字符串,單詞之間用 1 個空格分開,輸入保證句子末尾沒有多餘的空格。測試
每一個測試用例的輸出佔一行,輸出倒序後的句子。spa
Hello World Here I Come
Come I Here World Hello
從後往前,每遇到一個空格,輸出這個空格以後的一個單詞,而後更改單詞尾的位置。在遍歷一遍以後,由於第一個單詞以前沒有空格,因此剩餘第一個單詞未輸出,輸出第一個單詞便可。code
#include<iostream> //#include<string> #include<string.h> using namespace std; int main() { // #include<string> 中的函數 // string words; // getline(cin, words); char words[80]; // #include<string.h> 中的函數 // 第二位參數表明容許輸入的字符個數,小於,不會等於 ,例如81 只能輸入80個字符 cin.getline(words, 81); int length = strlen(words); int indexA = length - 1; int indexZ = length; for ( ; indexA >= 0; indexA--) { if (words[indexA] == ' ') { for (int index = indexA + 1; index < indexZ; index++) { cout << words[index]; } cout << ' '; indexZ = indexA; } } // 循環結束後,indexA 等於 -1; // 剩餘第一個單詞未輸出 for (indexA++; indexA < indexZ; indexA++) { cout << words[indexA]; } return 0; }