我有一个字符串类型,我试图将它复制到另一个字符串类型char char,但是当我尝试显示新复制的输出时,它会变成空白。当我试图通过字符输出char复制的字符串长度的时候就好了。请看这个小代码和输出以便更好地理解。在另一个字符串中复制char字符串
#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'具有零长度,因此您不能使用索引来解决任何字符。使用'temp.push_back(name [i]);'使'temp'增长。 –
[Usiing在()显示你的代码不会工作,因为你超出了字符串的范围](http://rextester.com/HER88905) – PaulMcKenzie