在字符串中删除一些字符我有以下代码:如何削减或用C++
#include <iostream>
using namespace std;
#include <string.h>
int main(){
string track2;
string Track2;
string end_character("?");
Track2={";80221000000100018A1301000000000000000?"};
track2=Track2;
cout<<"Track2={"<<Track2<<"}\n";
if((track2.length()>=24) && (track2.find_first_not_of('0', 24) ==string::npos)){
track2.erase (track2.begin()+24, track2.end());
cout<<"\nTrack2={"<<track2<<"}\n";
Track2=track2 + end_character;
cout<<"\nTrack2={"<<Track2<<"}\n";
}
else
cout<<"Track2 has not more than 24 characters.\n";
}
我首先要检查字符串的长度磁轨2,如果这是大于或等于24字符,那么如果字符的其余部分在第24个字符= 0之后,并且最后一个字符= ?。然后,我将在第24个字符的开头处切割字符串track2,直到track2结束。之后,我会插入?在字符串track2的末尾输入字符并打印此字符。 这里是预期的输出:
Track2={;80221000000100018A1301000000000000000?}
Track2={;80221000000100018A13010}
Track2={;80221000000100018A13010?}
但我有一个问题,我上无法进入我如果循环,当我把人物?在我的字符串中。我的程序直接执行其他的循环。
任何人都可以帮我解决这个问题吗? 感谢
我敢打赌,如果您将代码重新格式化为可读格式,您会很快发现错误。 –
“如果第24个字符之后的字符的其余部分= 0并且最后一个字符=?” - 他们不可能都是真的......如果其余的都是'0',怎么可能成为一个问号? –