主要的坑:单词结束的可能有两种:1:后面是空格 2:是最后一个字符了
本人最先没有考虑到第二种情况 迷惑了半天
大小写转换都没啥问题
逆序输出 我把单词存入vector后逆序输出就可以了
最后贴出我的菜鸡水平code
//主要注意:单词结束的可能有两种 一种是空格 一种是最后一个字符了 string trans(string s, int n) { string str = ""; vector<string> vs; string result = ""; //第一步:大写换成小写 小写换成大写 for ( int k= 0; k < s.size();k++) { if ( s[k]>='a'&& s[k]<='z') { str += toupper(s[k]); } if (s[k] >= 'A'&& s[k] <= 'Z') { str += tolower(s[k]); } //单词结束的情况有两种:1:空格 2:末尾了 if (s[k] == ' ') { vs.push_back(str); vs.push_back(" "); str.clear(); } if (k == s.size() - 1) { vs.push_back(str);//最后一个单词的不加空格了 str.clear(); } } //第二步:倒序输出(将单词作为整体存入数组里 倒叙直接输出) for (auto it = vs.rbegin(); it != vs.rend();it++) { result += *it; } return result; }