1
我正在用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和它被允許訪問的S [0]
一般來說,你可以從零到尺寸-1,但僅當大小> = 1
我建議您訪問http://www.cplusplus.com/reference/string/string/ –