【发布时间】:2021-04-06 08:42:54
【问题描述】:
我正在尝试使用此代码反转字符串中的单词:
#include <bits/stdc++.h>
using namespace std;
int main()
{
//_ _ the sky is blue
string vec;
getline(cin, vec);
stack<string> str;
string temp = "";
string ans = "";
for (int i = 0; i < vec.length(); i++)
{
if (vec.at(i) == ' ')
{
if (temp.length() > 0)
{
str.push(temp);
temp = "";
}
else
{
temp = temp + vec.at(i);
}
}
}
//ans = ans + temp;
while (!str.empty())
{
ans = ans + " " + str.pop();
}
if (ans.length() != 0 && ans.at(0) == ' ')
ans = ans.substr(1);
cout << ans << endl;
}
我在第 33 行收到此错误,告诉 "no match for 'operator+'"。
我已附上相关截图:
请帮忙。
【问题讨论】:
-
您是否阅读了错误信息?它告诉你出了什么问题。它甚至会告诉你出错的那一行。
-
str.pop();返回 void,错误消息字面意思是这样。 -
提示:
str.pop()返回什么? -
请不要发布带有文字的图片(甚至是屏幕截图)。
标签: c++ string stack reverse operator-keyword