我希望有人能够帮助我。
我有一些代码,我有一个字符串变量数据。数据总是包含这样的内容:"' 401454654"。它总是一个'后面有一个数字。我想删除'在前面。数据也是空字符串也是可能的。我目前的解决方案如下:
string data = /* ... */;
if(!data.empty())
data.erase(data.begin());
else
cout << "Error in line ...." << endl;
有趣的是,我总是只使用数字或空字符串获得正确的字符串。但有时我会得到一些奇怪的角色加上原来的&#39; 401454654。我真的不知道,原因是什么。
在Windows和Linux上测试了g ++ 4.6和g ++ 4.9 linaro。总是完全相同的结果。我希望有人可以给我一个建议。
答案 0 :(得分:0)
对不起,迟到了。我自己解决了。我实际上不知道我在gist上传的实现中的错误,但是我以更好的方式第二次实现它(对于第一个我只有几分钟的时间来实现它)。谢谢你的帮助。
答案 1 :(得分:-1)
您可能会看到此错误:https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60278
有趣的是,我能够在gcc 4.8.1中编译它:
data.erase(data.begin());
如果是错误,你可以实现它在幕后所做的代码:
copy(next(data.begin()), data.end(), data.begin());
data.pop_back();