所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符
输入:I am a boy
输出:boy a am I
直接通过空格拆分成子字符串,然后逆序输出即可,代码如下:
#include<iostream>#include<string>#include<cstring>#include<vector>using namespace std;vector<string> split(string str, string delim) { vector<string> res; if ("" == str) return res; //string类型转换为char*类型 char * strs = new char[str.length() + 1]; strcpy(strs, str.c_str()); char * d = new char[delim.length() + 1]; strcpy(d, delim.c_str()); char *p = strtok(strs, d); while (p != NULL) { string s = p; //分割得到的字符串转换为string类型 res.push_back(s); //存入结果数组 p = strtok(NULL, d); } return res;}int main() { char* input = new char[10000]; cin.getline(input,10000); string str(input); vector<string> result=split(input, " "); for (int i = result.size() - 1; i > -1;i--) { cout << result[i]; if (i != 0) { cout << " "; } } return 0; }