私はこのコードをC++で書いています。文字列がC++で目的の出力を印刷しないのはなぜですか?
std::string s;
s[0] = 'a';
std::cout << s;
結果は次のようになります。
なぜこれが何の印刷は何もありませんか?質問は簡単ですが、より良い方法で説明することができます。
私はこのコードをC++で書いています。文字列がC++で目的の出力を印刷しないのはなぜですか?
std::string s;
s[0] = 'a';
std::cout << s;
結果は次のようになります。
なぜこれが何の印刷は何もありませんか?質問は簡単ですが、より良い方法で説明することができます。
std::string s; // s is default constructed (s.length() returns 0)
//s[0] = 'a'; // modifying elements that are out of bounds causes undefined behavior
s.resize(1);
s[0] = 'a'; // OK, s.length() is 1
std::cout << s << std::endl;
文字列サイズは開始からゼロです。したがって、インデックスゼロにアクセスすることはできません。代わりに
s = "a";
やっていることは今文字列がサイズ1を持っており、これは、アクセスのに許可されている[0]一般に
あなたかもしれない、ゼロからサイズ-1にしか際サイズ> = 1
http://www.cplusplus.com/reference/string/string/にアクセスすることをお勧めします。 –