【发布时间】:2021-05-29 04:59:12
【问题描述】:
我正在尝试使用以下代码创建一个函数来执行内置函数 .erase() 在 c++ 中所做的事情:
string delChar(string text, int no_of_ch_to_delete, int starting_point)
{
int Final_Point = starting_point + no_of_ch_to_delete;
for (int i = starting_point; i <= Final_Point; i++)
{
text = text.at(i) = '\0';
}
return text;
}
这给了我一个我无法弄清楚的错误:
Unhandled exception thrown: write access violation.
std::basic_string<char,std::char_traits<char>,std::allocator<char> >::at(...) returned 0xCD9CC6C4.
我该如何纠正这个问题?
【问题讨论】:
-
text = text.at(i) = '\0';为什么要将at返回的值分配给text?
标签: c++ string function runtime-error erase