所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符
输入: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;
}