gpt4 book ai didi

c++ - 重建字符串删除标点符号的问题

转载 作者:太空宇宙 更新时间:2023-11-04 14:57:43 27 4
gpt4 key购买 nike

我正在尝试编写一个程序来去除字符串中的标点符号。程序的输入应该是一串包含标点符号的字符;输出应该是一个标点符号被删除的字符串。我正在使用 Visual Studio 2008 来编译和运行该程序。执行它时出现异常:“调试断言失败,表达式:字符串下标超出范围。”

什么我在这里做错了吗?

int main()
{
string input;
string output;

getline(cin, input);

string::size_type i = 0;
for (string::size_type ix = 0; ix != input.size(); ++ix)
{

if (!ispunct(input[ix]))
{
output[i] = input[ix];
++i;
}

}


cout << output << endl;

return 0;
}

最佳答案

您没有为 output 变量设置有意义的大小,因此您正在访问不存在的元素。你需要 output.push_back(input[ix]);

关于c++ - 重建字符串删除标点符号的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5379816/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com