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

Jinku Hu 12 Oktober 2023
  1. Verwenden Sie den std::string-Konstruktor, um ein char-Array in einen string zu konvertieren
  2. Verwenden Sie die Funktion memmove, um ein Char-Array in einen String zu konvertieren
  3. Verwenden Sie die Methode std::basic_string::assign, um ein Char-Array in einen String zu konvertieren
Wie konvertiert man ein Char-Array in eine Zeichenkette in C++

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;
}
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Verwandter Artikel - C++ Char

Verwandter Artikel - C++ String