Converti array di caratteri in stringa in C++
-
Usa il costruttore
std::string
per convertire un array di caratteri in una stringa -
Usa la funzione
memmove
per convertire un array di caratteri in una stringa -
Usa il metodo
std::basic_string::assign
per convertire un array di caratteri in una stringa
Questo articolo introduce diversi metodi per convertire un array char
in un contenitore string
.
Usa il costruttore std::string
per convertire un array di caratteri in una stringa
In questo esempio, dichiariamo una stringa C costante, che viene quindi utilizzata come parametro di costruzione string
. Questo metodo calcola automaticamente la lunghezza della stringa. Dopo la chiamata al costruttore, possiamo manipolare la variabile tmp_string
secondo necessità.
#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;
}
Produzione:
This will be stored in std::string
Usa la funzione memmove
per convertire un array di caratteri in una stringa
Un modo più semplice è copiare i dati char*
in un contenitore di stringa
inizializzato. In questo modo, devi conoscere in anticipo la lunghezza dell’array char
per passarla nella funzione memmove
. Notare che l’inizializzazione del contenitore string
è fondamentale per un comportamento corretto, ed è per questo che stiamo riempiendo la variabile tmp_string
con 0x01 byte.
#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;
}
Nota che puoi anche copiare i dati di c_string
in tmp_string
utilizzando varie funzioni come: memcpy
, memccpy
, mempcpy
, strcpy
o strncpy
, ma fai attenzione a leggere attentamente le pagine di manuale e considerare i loro casi limite / bug.
Usa il metodo std::basic_string::assign
per convertire un array di caratteri in una stringa
Come nell’esempio precedente, questo metodo richiede la lunghezza dell’array char
. Definiamo un puntatore char
chiamato tmp_ptr
e gli assegniamo l’indirizzo del primo carattere in 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;
}
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 FacebookArticolo correlato - C++ Char
- Contare le occorrenze di un carattere in String C++
- Ottieni il valore ASCII di Char in C++
- Converti array di caratteri in Int in C++
- Converti ASCII in Char in C++
- Converti Int in Char Array in C++