Ich habe einen Zeichenkettentyp und ich versuche, dies in einen anderen Zeichenkettentyp char by Char zu kopieren, aber wenn ich versuche, die Ausgabe von neuen zu zeigen, wird es leer angezeigt. Wobei, wenn ich versuche, Char durch Char für diese kopierte Stringlänge auszugeben, ist es in Ordnung. Bitte sehen Sie diesen kleinen Code und Ausgabe zum besseren Verständnis.Kopieren einer Zeichenkette durch Zeichen in einer anderen Zeichenkette
#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
}
}
Ausgang:
Tom
Tom
Ich weiß, es gibt auch andere Möglichkeiten, zu erreichen, was ich versuche gerade aus Gedanken zu tun, sondern versuchte dies und es hat nicht funktioniert. Also auf der Suche nach einer Erklärung.
'temp' hat keine Länge, daher können Sie die Indizierung nicht verwenden, um eines seiner Zeichen zu adressieren. Verwenden Sie 'temp.push_back (name [i]);', um 'temp' zu vergrößern. –
[Using at() zeigt, dass Ihr Code nicht funktioniert, weil Sie außerhalb der Grenzen des Strings sind] (http://rextester.com/HER88905) – PaulMcKenzie