実際に数字と文字列が,
で区切られた文字列、たとえば"12,fooBar"
があります。文字列(substrから)unsigned intへの変換
unsigned int myNum
に数字を、std::string myStr
に文字列を分けた変数に入れたいと思います。
私は、次のコードを切り取られている:
size_t pos1=value.find(',');
std::cout << value.substr(0, pos1) << " and "
<< (value.substr(0, pos1)).c_str() << std::endl;
これは12 and 1
が得られます。私がここで逃したものは何ですか? 2番目の部分の2
には何が起こりますか?
注::私はこの問題を、コードの断片に分割しました。私はunsigend int
を得るためにatoi
にそれを渡すためにc_str()
が必要です。ここでは2番目の部分を印刷したくありません。
更新:私は実際にlevelDB Get
から文字列を取得します。私がここに置いたようなテスト文字列を置くと、それは動作します。
あなたはそこにいなければなりません。 ([それは私のために働く](http://ideone.com/NoB87))問題を示す*完全* * *最小限のプログラムを提供してください。 http://sscce.org –
@Robどのように動作するのですか?両方のsubstrsが同じ初期インデックスを使用しています。彼は決して入力の文字列部分に到達しません。 – Sid
@Sid、このスニペットは文字列部分を取得するはずです。このコードスニペットは、 '12と12'を生成すると考えられています。 OPのメモを見てください。「atoiに渡すには '' c_str()が必要です」 –