在字符串中刪除一些字符我有以下代碼:如何削減或用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',怎麼可能成爲一個問號? –