Comment convertir un tableau de caractères en chaîne de caractères en C++

Jinku Hu 12 octobre 2023
  1. Utilisez le constructeur std::string pour convertir un tableau de char en chaîne
  2. Utilisez la fonction memmove pour convertir un tableau de caractères en chaîne de caractères
  3. Utilisez std::basic_string::assign Méthode pour convertir un tableau de caractères en chaîne de caractères
Comment convertir un tableau de caractères en chaîne de caractères en C++

Cet article présente plusieurs méthodes pour convertir un tableau de char en un conteneur de chaîne.

Utilisez le constructeur std::string pour convertir un tableau de char en chaîne

Dans cet exemple, nous déclarons une chaîne de caractères C constante, qui est ensuite utilisée comme paramètre de construction de la chaîne. Cette méthode calcule automatiquement la longueur de la chaîne. Après l’appel du constructeur, nous pouvons manipuler la variable tmp_string si nécessaire.

#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;
}

Production:

This will be stored in std::string

Utilisez la fonction memmove pour convertir un tableau de caractères en chaîne de caractères

Une méthode plus simple consiste à copier les données de char* dans un conteneur de chaîne initialisé. De cette façon, vous devez connaître à l’avance la longueur du tableau “char” pour le passer dans la fonction memmove. Notez que l’initialisation du conteneur string est critique pour un comportement correct, et c’est pourquoi nous remplissons la variable tmp_string avec 0x01 octets.

#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;
}

Notez que vous pouvez aussi copier les données de la c_string vers la tmp_string en utilisant diverses fonctions comme : memcpy, memccpy, mempcpy, strcpy ou strncpy, mais lisez attentivement les pages du manuel et tenez compte de leurs bogues.

Utilisez std::basic_string::assign Méthode pour convertir un tableau de caractères en chaîne de caractères

Comme l’exemple précédent, cette méthode nécessite la longueur du tableau “char”. Nous définissons un pointeur de char nommé tmp_ptr et nous lui attribuons l’adresse du premier caractère dans tmp_string.

#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;
}
Auteur: 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

Article connexe - C++ Char

Article connexe - C++ String