0

重複の可能性:
C ++ string.substr()関数の問題

string s = "0123456789";

cout<<s.substr(0,4)<<endl;

cout<<s.substr(4,7)<<endl;

上記のコード行の出力はかなり予想外でした。s.substr(0,4)は私に「0123」を与え、s.substr(4,7)は私に「456789」を与えました。「456」だけを期待していました。ここで何かが足りないのでしょうか。また、C ++のsubstr関数に代わるものがあります。これにより、2回目の呼び出しで「456」しか得られません。

4

3 に答える 3

5

の2番目の引数はsubstr、終了インデックスではなく、目的のサブストリングの長さです。したがって、の代わりにs.substr(4,7)、が必要ですs.substr(4,3)

于 2012-10-22T14:38:34.427 に答える
2

substr初期位置と希望の長さを取ります-ここを参照してください。

試してみてくださいsubstr(4,3)

于 2012-10-22T14:39:12.367 に答える
2

の2番目のパラメータはsubstrシンボルの数であり、想定しているエンドインデックスではありません。を使用しますsubstr(4,3)

于 2012-10-22T14:39:16.693 に答える