gpt4 book ai didi

c++ - 在另一个字符串中按字符复制字符串字符

转载 作者:行者123 更新时间:2023-11-30 03:31:42 26 4
gpt4 key购买 nike

我有一个字符串类型,我试图将其逐个字符复制到另一个字符串类型中,但是当我尝试显示新复制的输出时,它显示为空白。当我尝试为复制的字符串长度逐个输出一个字符时,它没问题。请查看此小代码和输出以便更好地理解。

#include <iostream>
#include <string>

using namespace std;

int main()
{
string name = "Tom";
string temp;
int i = 0;
for(; i < name.length(); ++i)
{
temp[i] = name[i];
}
cout<<name<<endl; //gives the output Tom
cout<<temp<<endl; //gives blank
for(int i = 0; i < name.length(); ++i)
{
cout<<temp[i]; //gives output char by char
}
}

输出:

Tom

Tom

我知道还有其他可能的方法可以实现我想要做的事情,但只是出于思考尝试了这个,但没有奏效。所以寻找一些解释。

最佳答案

注意temp是空的,它的长度是0。然后 temp[i] = name[i]; 导致 undifined behavior ;一切皆有可能,但没有任何保证。

你可以给它一个初始长度,比如:

string name = "Tom";
string temp(name.length(), '\0');

关于c++ - 在另一个字符串中按字符复制字符串字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43990713/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com