我想使用memmove
删除字符串的第一个字符
例如,std::string
可能包含:./Folder/File.txt
我想删除.
我在做:
if (newStr[0] == '.')
{
memmove(newStr, newStr+1, strlen(newStr));
}
并得到一个错误:
error: no match for 'operator+' in 'newStr + 1'
我犯什么错误?
更新:哦,我想我应该使用
char*
,但对std::string
无效 最佳答案
看起来您的newStr是一个std::string,在这种情况下,您应该使用newStr.erase(0,1);
有关擦除的更多信息,请参见this site。memmove
仅在直接处理缓冲区(char *或char [])时才有效。如果您的类型是std::string,请使用为其指定的功能(擦除),不要在c_str上尝试memmove
。
关于c++ - 使用 `memmove`删除std::string的第一个字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13366970/