栈实现对字符串的翻转 C++
翻转单词顺序列
http://www.nowcoder.com/questionTerminal/3194a4f4cf814f63919d0790578d51f3
string ReverseSentence(string str) { if(str.empty()) { return str; } stack<string>sta; string temp = ""; int len = str.size() - 1; for(int i = 0;i <= len;i++) { string s;//局部变量 临时存储非空格字符串 while(!isblank(str[i]) && i <=len) { s += str[i]; i++; } sta.push(s);//将非空格字符串视为一个元素压栈 if(isblank(str[i]))//判断是否为空 若不为空则说明已执行到str末尾 {//将空格视为一个元素压栈 string str1 = " ";//str[i]为char 存在于string 的转换问题 为避免麻烦直接使用空格 sta.push(str1); } } while(!sta.empty()) { //弹出, temp += sta.top(); sta.pop(); } return temp; }