HOWTO · C++

Wie konvertiert man ein Char-Array in eine Zeichenkette in C++

In diesem Artikel werden mehrere Möglichkeiten zur Konvertierung von Char-Array in String in C++ vorgestellt

Auf dieser Seite

Dieser Artikel stellt mehrere Methoden vor, um ein char-Array in einen string-Container zu konvertieren.

Verwenden Sie den std::string-Konstruktor, um ein char-Array in einen string zu konvertieren

In diesem Beispiel deklarieren wir eine konstante C-Zeichenkette, die dann als Zeichenkette-Konstruktparameter verwendet wird. Diese Methode berechnet die Länge der Zeichenkette automatisch. Nach dem Konstruktoraufruf können wir die tmp_string Variable nach Bedarf manipulieren.

#include <iostream>
#include <string>

using std::cin;
using std::cout;
using std::endl;
using std::string;

int main() {
  const char* c_string = "This will be stored in std::string";

  string tmp_string(c_string);
  cout << tmp_string << endl;

  return EXIT_SUCCESS;
}

Ausgabe:

This will be stored in std::string

Verwenden Sie die Funktion memmove, um ein Char-Array in einen String zu konvertieren

Ein einfacherer Weg ist es, char* Daten in einen initialisierten string Container zu kopieren. Auf diese Weise müssen Sie die Länge des Arrays char im Voraus kennen, um sie in der Funktion memmove zu übergeben. Beachten Sie, dass die Initialisierung des string-Containers entscheidend für das korrekte Verhalten ist, und deshalb füllen wir die tmp_string-Variable mit 0x01 Bytes.

#include <cstring>
#include <iostream>
#include <string>

using std::cin;
using std::cout;
using std::endl;
using std::string;

constexpr int C_STRING_LENGTH = 34;

int main() {
  const char* c_string = "This will be stored in std::string";
  string tmp_string(C_STRING_LENGTH, 1);

  memmove(&tmp_string[0], c_string, C_STRING_LENGTH);
  cout << tmp_string << endl;

  return EXIT_SUCCESS;
}

Beachten Sie, dass Sie auch c_string-Daten nach tmp_string kopieren können, indem Sie verschiedene Funktionen wie memcpy, memccpy, mempcpy, strcpy oder strncpy, aber lesen Sie bitte sorgfältig die Handbuchseiten und beachten Sie deren Grenzfälle/Fehler.

Verwenden Sie die Methode std::basic_string::assign, um ein Char-Array in einen String zu konvertieren

Wie das vorherige Beispiel erfordert diese Methode die Länge des char-Arrays. Wir definieren einen char-Zeiger namens tmp_ptr und weisen ihm die Adresse des ersten Zeichens in tmp_string zu.

#include <iostream>
#include <string>

using std::cin;
using std::cout;
using std::endl;
using std::string;

constexpr int C_STRING_LENGTH = 34;

int main() {
  const char* c_string = "This will be stored in std::string";
  string tmp_string;

  tmp_string.assign(c_string, C_STRING_LENGTH);
  cout << tmp_string << endl;

  return EXIT_SUCCESS;
}