题解 | #句子逆序#C++只利用substr实现
句子逆序
https://www.nowcoder.com/practice/48b3cb4e3c694d9da5526e6255bb73c3
#include <iostream> using namespace std; #include <vector> void ReverseSentence(string s) { vector<string> vec; string str; while (!s.empty()) { int i = 0; while (i < s.size() && s[i] != ' ') { str += s[i]; i++; } vec.push_back(str); if (str.size() < s.size()) { str = ""; s = s.substr(i + 1); } else //这一步非常重要,不然会string index溢出,因为最后一个单词的后面是没有空格的,取不到i+1 { s.clear(); } } for (int i = vec.size() - 1; i >= 0;i--) { cout << vec[i] << ' '; } } int main() { string s; getline(cin, s); ReverseSentence(s); return 0; } // 64 位输出请用 printf("%lld")