小编0xf*_*xff的帖子

为什么 cout 不打印这个字符串?

所以,我是 C++ 的新手,我无法弄清楚为什么会发生这种情况。我有一个包含所有字母的字符串,我将 10 个字符从它复制到一个新字符串中s2,使用 for 循环逐个字符复制,如下所示,当我执行它时,该cout函数正在打印一个空行。

#include <iostream>

using namespace std;

int main(){
    string s = "abcdefghijklmnopqrstuvwxyz";
    string s2;
    for(int i=0; i<10; i++){
        s2[i] = s[i];
    }
    cout << s2 << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是当我s2逐个字符打印这个字符串时,我得到了正确的输出

#include <iostream>

using namespace std;

int main(){
    string s = "abcdefghijklmnopqrstuvwxyz";
    string s2;
    for(int i=0; i<10; i++){
        s2[i] = s[i];
    }
    
    for(int i=0; i<10; i++){
        cout << s2[i];
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激!

c++ stdstring c++17

3
推荐指数
1
解决办法
161
查看次数

标签 统计

c++ ×1

c++17 ×1

stdstring ×1