我正在制作一个Rcon工具,用于使命召唤现代战争2。 当我获得服务器信息时,它使用颜色代码的颜色^ 1 =红色^ 2 =绿色等等,基本上我想要做的就是删除^'数字'从字符串^可以有人告诉我如何从系统字符串中删除这些字符? 我喜欢这样简单的事情:
for(int i=0;i<9;i++)
{
if(char=="^" + i)
{
string ^servernamme -= char;
}
}
答案 0 :(得分:1)
只需使用std::string
的方法,例如:
size_t start = 0;
for (size_t pos = str.find('^', start); pos != std:npos; pos = str.find('^', start))
if (str.find_first_of("0123456789", pos) == pos + 1)
str.erase(pos, 2);
else
start = pos + 1;
答案 1 :(得分:0)
它总是你要删除的最后两个字符,你可以使用:
string result = theString.substr(0, theString.size()-1);
答案 2 :(得分:0)
试试这个:
str.resize(std::distance(str.begin(), std::remove(str.begin(), str.end(), '^')));
也就是说,将'^'
移到最后并调整大小以修剪它们。
答案 3 :(得分:0)
如果你在不使用std :: string的情况下尝试这样做,那么我假设你将theString声明为char []或char *。
然后你可以这样做:
for(int i = 0; strlen(theString) > i; ++i)
{
if (theString[i] == '^' && isdigit(theString[i+1]))
{
strcpy(theString+i, theString+i+2);
--i; // decrement loop index so we won't miss any bytes
}
}
我希望这就是你要找的东西。