私は次のコードを持っています:
#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";
}
最初に文字列track2の長さを確認したいのですが、これが24文字以上であるかどうか、24文字目以降の残りの文字が= 0であるかどうか、最後の文字が= ?。次に、24番目の文字の先頭からtrack2の終わりまで文字列track2をカットします。その後、?を挿入します 文字列track2の最後の文字とこれを印刷しました。期待される出力は次のとおりです。
Track2={;80221000000100018A1301000000000000000?}
Track2={;80221000000100018A13010}
Track2={;80221000000100018A13010?}
しかし、問題があり、キャラクターを配置したときにifループに入ることができませんか?私の文字列で。私のプログラムはelseループを直接実行します。
誰かが私がこれを解決するのを手伝ってもらえますか?ありがとう