我有這種特殊的需求,我需要刪除管道'|'的特定字符之前的所有空格字符。 我已經寫了它的測試代碼,這實際上是打印右輸出,但另外饋贈我一個核心文件:(刪除一行中的字符前的所有空格
我的代碼如下:
int main()
{
string line="1 2 |3 4| hbvhwf wjff wenf|hjbcwbfw ejwef efwk dfkwe|jsv |";
cout <<line<<endl;
string::iterator ite =(line.begin());
int counter=0;
int index=0;
int start=0;
while(ite != (line.end()))
{
if(*ite == '|' && counter > 0)
{
line.erase(start,counter);
counter=0;
cout<<line<<endl;
}
if(ite!=line.end())
{
if(isalnum(*ite))
{
counter=0;
}
if(*ite==' ')
{
if(!counter)
{
start=index;
}
counter++;
}
ite++;
index++;
}
}
cout<<line<<endl;
}
我只想堅果中發現的根。核心轉儲的原因 有誰請幫助 預期成果是:
1 2|3 4| hbvhwf wjff wenf|hjbcwbfw ejwef efwk dfkwe|jsv|
一旦你調用擦除你行,你需要重新設置迭代器。 – dwxw
我認爲應該自動完成。就我的理解而言,我不必這麼做。 – user1939168
@ user1939168 ['std :: string :: erase'](http://en.cppreference.com/w/cpp/string/basic_string/erase)返回一個迭代器。您應該將其分配給代碼中的'ite'。 – rubenvb