32 說反話 加強版

2021-08-27 23:46:56 字數 1550 閱讀 1994

給定一句英語,要求你編寫程式,將句中所有單詞的順序顛倒輸出。

測試輸入包含乙個測試用例,在一行內給出總長度不超過500 000的字串。字串由若干單詞和若干空格組成,其中單詞是由英文本母(大小寫有區分)組成的字串,單詞之間用若干個空格分開。

每個測試用例的輸出佔一行,輸出倒序後的句子,並且保證單詞間只有1個空格。

hello world   here i come
come i here world hello
#include#includeusing namespace std;

void trim(string &s);

int main()

{ string str;

getline(cin,str);

trim(str);

int len = str.length();

int begin,i;

int end = len-1;

for(begin=len-2;begin>0;begin--){

if(str[begin]==' '&&str[begin+1]!=' '){

for(i=begin+1;i<=end;i++)

coutstring str;

str.length()//獲取字串長度

str.begin()//獲取第乙個字元

str.end()//獲取最後乙個字元

reverse(str.begin(),str.end())//str倒置

str.c_str()//字串string轉字元陣列char

str.find(char c,int n)//從str[n]往後查詢字元c,返回第乙個 c出現的位置

string st2("aabcbcabcbabcc");

str1 = "abc";
cout << st2.find(str1, 2) << endl;//6,從st2的位置2(b)開始匹配,返回第一次成功匹配時匹配的串(abc)的首字元在st2中的位置,失敗返回-1
cout << st2.find("abcdefg", 2, 3) << endl;//6   取abcdefg得前3個字元(abc)參與匹配,相當於st2.find("abc", 2)
str.rfind(char c ,int n)//從str[n]向前查詢,直到串首

str.find_first_of(string str1,int n)//在源串中從位置n起往後查詢,只要在源串中遇到乙個字元,該字元與目標串中任意乙個字元相同,就停止查詢,返回該字元在源串中的位置;若匹配失敗,返回-1。

find_last_of-與find_first_of函式相似,只不過查詢順序是從指定位置向前
string str6("bcgjhikl");

string str7("kghlj");

cout << str6.find_first_of(str7, 0) << endl;//2,從str1的第0個字元b開始找,g與str2中的g匹配,停止查詢,返回g在str1中的位置2

說反話 加強版

給定一句英語,要求你編寫程式,將句中所有單詞的順序顛倒輸出。測試輸入包含乙個測試用例,在一行內給出總長度不超過500 000的字串。字串由若干單詞和若干空格組成,其中單詞是由英文本母 大小寫有區分 組成的字串,單詞之間用若干個空格分開。每個測試用例的輸出佔一行,輸出倒序後的句子,並且保證單詞間只有1...

PTA 說反話 加強版

給定一句英語,要求你編寫程式,將句中所有單詞的順序顛倒輸出。測試輸入包含乙個測試用例,在一行內給出總長度不超過500 000的字串。字串由若干單詞和若干空格組成,其中單詞是由英文本母 大小寫有區分 組成的字串,單詞之間用若干個空格分開。每個測試用例的輸出佔一行,輸出倒序後的句子,並且保證單詞間只有1...

PTA 說反話 加強版

給定一句英語,要求你編寫程式,將句中所有單詞的順序顛倒輸出。輸入格式 測試輸入包含乙個測試用例,在一行內給出總長度不超過500 000的字串。字串由若干單詞和若干空格組成,其中單詞是由英文本母 大小寫有區分 組成的字串,單詞之間用若干個空格分開。輸出格式 每個測試用例的輸出佔一行,輸出倒序後的句子,...