如何更改std :: string的一个字符?

时间:2014-04-01 10:24:53

标签: c++ string

当我尝试使这个影响操作时:

unsigned char castME[65536];
// castMe = "dqslqdqslmd";
std::string str = (char*)castMe;
str[str.find_first_of("Ì")] = '\0';

我在return (this->_Myptr()[_Off]);文件的第1691行(xstring)行获得了打击例外。

  

Project.exe已触发断点

有人可以解释一下我的错误以及如何解决它吗?

非常感谢!

1 个答案:

答案 0 :(得分:2)

通话结果

str.find_first_of("Ì")

可以是std::string::npos(既不能找到符号)。

所以你应该写一些东西

std::string::size_type n = str.find_first_of("Ì");

if ( n != std::string::npos ) str[n] = '\0';

或许你想要以下

std::string::size_type n = str.find_first_of("Ì");

if ( n != std::string::npos ) str.erase( n );