プログラムがいくつかの操作を行うことがわかった場合、数値と文字で構成される a を見つけたいのですが、 function を使用するchar
と、探している文字が文字列の先頭にある場合にのみ true が返されます!!! !!string
find()
例: これは問題の一部です。
ユーザーは 3 つの文字列 s1 、 s2 、 s3 を入力します。最初の 2 つの文字列の間には char が'a' = '+'
あり、s2 と s3 の間にはchar があり'b' = '='
ます (3 つの文字列は数値であると想定されています) が、s2 が文字を含む単語である場合'm'
、プログラムは s1 と s3 を整数に変換し、完全な操作 ex を書き込みます。 i/p が 3247 + 5machula2 = 3749 の場合、o/p は 3247 + 502 = 3749 になります。
http://www.spoj.com/problems/ABSYS/を解決しようとしている問題と 、問題のあるコードのこの部分は次のとおりです。
int T;
int x,y,z;
string s1 ;
string s2 , s3 ;
char a , b;
cin>>T;
for(int i=0 ; i<T ; i++)
{
cin>>s1>>a>>s2>>b>>s3;
for (int k=0; k<s2.size(); k++)
{
if (k==s2.find("m"))
{
stringstream ss(s1);
stringstream ss3(s3);
ss>>x;
ss3>>z;
cout<<s1<<" "<<a<<" "<<z-x<<" "<<b<<" "<<s3<<endl;
}
else break;
}
これは 2 番目の文字列をループするループであり、char が見つかった場合'm'
は上記の処理を実行する必要がありますが、ここでの問題は'm'
、文字列の先頭にある場合にのみ機能し、それ以外の場所には機能しないことです。