私はC++で与えられた文字列の異なる部分文字列のすべての可能な対を作りたいと思います。私は、次の2つの方法を試してみました: と仮定abfabgab
は私の文字列と使用して私のようなサブストリングのペアのすべての可能な組み合わせ見たい力ずくである:ab
、af
、aa
、ab
、ag
、ab
を2回目bf
、ba
のために...等々。C++:この特殊なケースのために文字のペアを文字列にする方法は?
string sbstr; // where s is the string from which I wanna make substrings pair
for(unsigned int i=0; i<s.length()-1; ++i)
{
for(unsigned int j=i+1; j<s.length(); ++j)
{
sbstr=(char)s[i]+(char)s[j];
cout<<sbstr<<" ";
}
cout<<endl;
}
私も次のことを試してみましたが、それはいくつかのエラーを示しています
char two[2];
string sbstr;
for(unsigned int i=0; i<s.length()-1; ++i)
{
for(unsigned int j=i+1; j<s.length(); ++j)
{
two[0]=s.at(i);
two[1]=s.at(j);
sbstr=two;
cout<<sbstr<<" ";
}
cout<<endl;
}
この時間もガベージ値は、各ストリングの最後にあります。 私はそれを把握するのを助けてください? ありがとうございます。
'(文字)S [i]は+(CHAR)■[J ] 'それらを連結するのではなく、2つの値を追加します。 2番目のバージョンのC配列に ''\ 0''ターミネータがありませんでした。 – mch
'cout << s [i] << s [j];' –
@mchはい、そうです。私はこれを持って – jackyone