句子逆序(C++)

xiaoxiao2021-02-28  41

将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”

所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符

输入: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;    }

转载请注明原文地址: https://www.6miu.com/read-2500295.html

最新回复(0)