目前正在uni进行一个项目,起初我需要对一个字符串进行去连接,看起来很简单但是当我运行该程序时它有一个错误WeirdPuncProgram.exe: Microsoft C++ exception: std::out_of_range at memory location 0x004EF898
它也没有正确返回字符串值,在函数answer()
内部被更改并且连字符被删除但是一旦它出来它再次只是原始输入。
#include <iostream>
#include <string>
using namespace std;
string answer;
string hyphonRemover(string answer)
{
string spacer = " ";
int h;
for (int i = 0; i < answer.length(); i++)
{
h = answer.find_first_of("-");
answer.replace(h, 1, spacer);
}
return answer;
}
int main()
{
cout << "Type a sentence which contains punctuation and ill remove it for you! " << endl << endl;
getline(cin, answer);
hyphonRemover(answer);
cout << answer << endl;
system("pause");
return 0;
}
答案 0 :(得分:1)
answer
中hyphonRemover()
的每次使用都是本地变量,而不是您在上面定义的全局answer
。
因此该函数将仅修改其局部变量。