C++复制字符到字符串

ni65a41a  于 2023-01-18  发布在  其他
关注(0)|答案(2)|浏览(203)
int main()
     {
    string sample = "abcdef";
    string result; 
    result[0]='a';
    cout<<result[0];
    }

我试图将一个字符复制到字符串结果中;输出应该是一个显示。但没有显示。也没有错误消息。
直接拷贝正在工作//结果=样本;这密码怎么错了?

w1jd8yoj

w1jd8yoj1#

您的代码存在一些问题:
1.(不是错误)尽量不要使用using namespace std;

  1. result最初是空的,所以分配给一个特定的字符位置实际上是一个bug。如果你用+=操作符附加到它后面,那么它会像预期的那样工作。
    1.这应该不是问题,但在某些特定情况下,std::cout缓冲区可能不会刷新。您可以使用std::cout.flush()强制刷新。
    1.为清楚起见,始终以换行符结尾
#include <iostream>

int main()
{
    std::string sample = "abcdef";
    std::string result; 
    result +='a';
    std::cout << result << std::endl;
}

产生:

Program returned: 0
Program stdout
a

神箭:https://godbolt.org/z/ocvGP6333

zfciruhq

zfciruhq2#

这将导致在访问时出现运行时错误

result[0]

因此您应该使用

result+="a";

此外,您没有在代码中使用sample变量,如果您打算将sample中的第一个字符复制到result,则可以使用

int main() {
    string sample = "abcdef";
    string result; 
    result+=sample[0];
    cout<<result[0];
}

相关问题