C++: initialisieren char-array mit einem string?

Sagen wir, ich habe einen string namens Müll.

Alles in den Müll, ich will ein char-array aus. Jedes element wäre ein Zeichen der Zeichenfolge ist.

So, der code würde etwa so Aussehen:

const int arrSize = sizeof(garbage); //garbage is a string
char arr[arrSize] = {garbage};

Aber, das gibt einen Fehler "cannot convert string to char bei der Initialisierung".

Was ist der richtige Weg, dies zu tun? Ich will einfach nur, um zu füttern das verflixte Ding ein string und ein array aus ihm heraus.

  • Unter der Annahme von string, du meinst std::string, sizeof(garbage) wahrscheinlich nicht tun, was Sie denken, es tut. Es gibt nur Sie die Größe eines std::string - Objekt, das einen compile-Zeit-Konstante, hat keine Beziehung zu der Länge der Zeichenfolge, die eine Laufzeit Wert.
  • Sie sind richtig, Ben. sizeof(Müll) nicht geben mir, was ich will. Guter Fang! Müll.size() ist die richtige Methode.
  • Ja, aber dann arrSize kann nicht verwendet werden zum festlegen der Größe von arr würde, denn es würde nicht mehr einen compile-Zeit-Konstante.
InformationsquelleAutor derp | 2012-12-04
Schreibe einen Kommentar