c character conversion functions
Questo tutorial tratta le funzioni di conversione dei caratteri C ++ come la conversione di un carattere in numero intero o stringa e matrice di caratteri in stringa con esempi di codice:
In C ++, sviluppando applicazioni che coinvolgono molti tipi, diventa necessario convertire da un tipo all'altro. Abbiamo già visto alcune conversioni di tipi di base nei nostri tutorial precedenti.
Abbiamo anche visto conversioni di stringhe e conversioni di tipi numerici in stringhe. Oltre alle funzioni di conversione delle stringhe che abbiamo già visto, ci sono alcune funzioni che vengono utilizzate per convertire un carattere in altri tipi di dati.
Queste sono le funzioni che accettano un singolo carattere o una matrice di caratteri e quindi le convertono in altri tipi di dati.
=> Leggere la serie di formazione Easy C ++.
Cosa imparerai:
- Funzioni di conversione dei caratteri C ++
- Conclusione
Funzioni di conversione dei caratteri C ++
Quando si tratta della conversione di un singolo carattere in intero o stringa e della conversione della matrice di caratteri in stringa, le funzioni di conversione cambiano leggermente da quelle delle funzioni di conversione di stringa.
creare un makefile c ++
In questo tutorial discuteremo le seguenti conversioni:
- Conversione di caratteri in numeri interi (da caratteri a int C ++)
- Conversione di carattere in stringa (da carattere a stringa C ++)
- Conversione della matrice di caratteri in stringa
Le prime due conversioni riguardano un singolo carattere, mentre l'ultima conversione riguarda la matrice di caratteri.
Converti carattere in intero: da carattere a int
Per convertire un singolo carattere in un tipo intero abbiamo due metodi come indicato di seguito:
# 1) Casting
Possiamo usare l'operazione di casting per convertire un singolo carattere nel suo equivalente intero. In questo caso, verrà visualizzato l'equivalente ASCII del carattere.
Considera la seguente conversione,
char a = 'A'; int num = (int) a;
In questo caso, 'num' avrà il valore 65 che è l'equivalente ASCII del carattere 'A'.
In alternativa, possiamo usare la seguente operazione se vogliamo convertire un carattere numerico in un valore intero.
char a = '2'; int num = a-48;
Qui, 48 è il valore ASCII di 0. Ciò che viene fatto qui è che la seconda riga a-48 converte implicitamente il carattere a nel suo equivalente ASCII e quindi lo sottrae da 48 (50-48) che risulta in un valore intero 2.
# 2) Utilizzo di stringstream
Come già visto nel tutorial sulle funzioni di conversione delle stringhe, possiamo convertire un singolo carattere rappresentato come un oggetto stringstream in un intero o qualsiasi valore numerico.
Di seguito è riportato un codice per dimostrarlo.
#include #include #include using namespace std; int main() { stringstream str; str <> x; cout<<'Converted value of character 5 :'< Produzione:
Valore convertito del carattere 5: 5
Converti carattere in stringa: da carattere a stringa
Esistono vari modi in cui possiamo convertire un singolo carattere in una stringa.
Parliamo di alcuni di questi metodi.
# 1) Utilizzo di un costruttore fornito dalla classe String.
Prototipo di funzione: stringa s (int n, char x);
Parametro (i):
n => Dimensione della stringa da generare.
x => Carattere che deve essere convertito in una stringa.
Valore restituito: s tring ottenuto per conversione di carattere.
Descrizione: Il costruttore di string class accetta la lunghezza della stringa (n) e un singolo carattere come parametri e quindi converte il carattere in stringa.
Di seguito è riportato un semplice esempio per dimostrare la conversione di un singolo carattere in una stringa.
#include #include using namespace std; int main() { string str(1,'A'); cout<<'The string obtained by converting single character : '< Produzione:
La stringa ottenuta convertendo un singolo carattere: A
La conversione di cui sopra è semplice. Chiamiamo il costruttore di stringhe e specifichiamo la lunghezza della stringa (primo parametro) come 1 poiché stiamo convertendo un singolo carattere e il secondo parametro è il carattere da convertire in stringa (in questo caso 'A').
# 2) Utilizzando std :: string Operator = And + =
Gli operatori di classe std :: string, = e + = sono sovraccaricati di caratteri. Quindi possiamo usare questi operatori per convertire un singolo carattere in stringa.
Ciò è dimostrato nel programma mostrato di seguito.
#include #include using namespace std; int main() { string str; char c = 'B'; str = 'C'; str += c; cout<<'The string obtained by converting single character : '< Produzione:
La stringa ottenuta convertendo un singolo carattere: CB
In questo programma, abbiamo utilizzato entrambi gli operatori di overload, = e + =. Abbiamo dichiarato un oggetto stringa e quindi gli abbiamo assegnato un carattere utilizzando l'operatore =. Successivamente usiamo l'operatore + = e assegniamo un altro carattere all'oggetto stringa.
Vediamo che la seconda volta che il carattere viene effettivamente concatenato ai contenuti già esistenti nell'oggetto stringa.
# 3) Utilizzo di vari metodi di std :: string
La classe std :: string supporta vari metodi sovraccaricati utilizzando i quali possiamo passare un carattere a una stringa che alla fine converte un carattere in una stringa.
Alcuni dei metodi della classe std :: string sono:
- respingere
Prototipo di funzione: void push_back (char c)
Parametro (i): c => Carattere da assegnare alla stringa
Valore di ritorno: restituisce void
Descrizione: Questa funzione è sovraccarica di caratteri e assegna un carattere alla fine della stringa.
- aggiungere
Prototipo di funzione: stringa e aggiungi (size_t n, char c)
Parametro (i):
n => Numero di volte in cui il carattere deve essere aggiunto.
c => Carattere che deve essere aggiunto alla stringa.
Valore di ritorno: Stringa ottenuta dalla conversione del carattere.
Descrizione: La funzione di accodamento di std :: string accetta due argomenti. Il primo argomento è il numero di volte in cui il carattere deve essere copiato nella stringa. Il secondo argomento è il carattere effettivo da copiare. Quindi la funzione append assegnerà quelle molte copie di carattere alla stringa come specificato nel primo argomento.
- assegnare
Prototipo di funzione: stringa & assegna (size_t n, char c);
Parametro (i):
n => Numero di copie del personaggio.
c => Carattere che deve essere copiato nella stringa.
Valore di ritorno: Stringa ottenuta dalla conversione del carattere.
Descrizione: La funzione Assegna sostituisce il contenuto della stringa corrente con n (primo argomento) copie del carattere (secondo argomento).
- inserire
Prototipo di funzione: stringa & inserisci (size_t pos, size_t n, char c);
Parametro (i):
pos => Posizione all'inizio della quale si devono inserire i caratteri.
n => Numero di copie del personaggio.
c => Carattere che deve essere inserito nella stringa.
Valore di ritorno: Stringa ottenuta dalla conversione del carattere.
Descrizione: Questa funzione inserisce n (secondo argomento) copie del carattere (terzo argomento) nella posizione iniziale della stringa specificata da pos (primo argomento).
Successivamente, svilupperemo un programma che dimostri tutte le funzioni precedenti della classe std :: string.
#include #include using namespace std; int main() { string str; str.push_back('A'); cout<<'push_back single character : '< Produzione:
push_back singolo carattere: A
aggiungere un singolo carattere: C
assegnare un singolo carattere: D
inserire un singolo carattere: BD
Il programma precedente mostra le funzioni push_back, append, assign e insert. L'output mostra il risultato o la stringa restituita da ciascuna funzione.
# 4) Utilizzando std :: stringstream
Abbiamo già discusso la conversione di tipi numerici in una stringa utilizzando stringstream. Anche la conversione di un carattere in una stringa segue lo stesso principio quando viene utilizzata una classe stringstream.
Il carattere specificato viene inserito nel flusso e quindi il contenuto viene scritto nella stringa.
Rendiamolo chiaro utilizzando un programma C ++.
#include #include #include using namespace std; int main() { string str; stringstream mystr; mystr<>str; cout<<'The string obtained by converting single character : '< Produzione:
La stringa ottenuta convertendo un singolo carattere: A
Per prima cosa inseriamo il carattere nell'oggetto stream e poi quel buffer viene scritto nell'oggetto stringa. Pertanto l'output del programma mostra il contenuto dell'oggetto stringa che è un singolo carattere.
Converti matrice di caratteri in stringa
La classe std :: string ha molti metodi che possono tornare utili quando si tratta di array di caratteri. Quindi è consigliabile convertire matrici di caratteri in oggetti stringa e quindi utilizzarli in modo da poter scrivere programmi efficienti.
Esistono due metodi per convertire la matrice di caratteri in una stringa come mostrato di seguito.
# 1) Utilizzo di String Constructor
Come già discusso per convertire un singolo carattere in stringa, possiamo utilizzare il costruttore di stringhe per convertire un array di caratteri in stringa.
Prototipo di funzione: stringa (const char * s);
Parametri: s => matrice di caratteri con terminazione null da convertire in stringa
Valore di ritorno: stringa => stringa convertita
Descrizione: Questo costruttore sovraccarico della classe std :: string accetta la matrice di caratteri o la stringa C come argomento e restituisce la stringa.
Il seguente programma mostra questa conversione.
#include #include using namespace std; int main() { char myarray() = {'Software Testing Help'}; string mystr(myarray); cout<<'Converted string: '< Produzione:
Stringa convertita: Guida al test del software
Il programma sopra è abbastanza semplice. Tutto ciò che serve è solo una chiamata al costruttore std :: string per convertire la matrice di caratteri data in stringa.
# 2) Utilizzo = Operatore sovraccarico
Un altro approccio per convertire un array di caratteri in un oggetto stringa consiste nell'usare un operatore sovraccarico =. In questo possiamo assegnare direttamente l'array di caratteri all'oggetto stringa usando l'operatore = e il contenuto verrà passato a stringa.
Il seguente esempio lo mostra.
#include #include using namespace std; int main() { char myarray() = {'Software Testing Help'}; string mystr; mystr = myarray; cout<<'Converted string: '< Produzione:
Stringa convertita: Guida al test del software
Il programma precedente assegna l'array direttamente a un oggetto stringa utilizzando l'operatore = che fa sì che il contenuto dell'array di caratteri venga copiato nell'oggetto stringa.
Conclusione
Abbiamo visto vari metodi per convertire un singolo carattere e array di caratteri in oggetti stringa. Poiché la classe std :: string ha molte funzioni che ci consentono di manipolare le stringhe in modo efficiente, è sempre utile lavorare con i dati dei caratteri convertendoli prima in stringhe.
Ulteriore lettura = >> Converti Char in Int in Java
Ulteriore lettura = >> Converti caratteri in stringa in Java
Possiamo anche usare metodi di classe per convertire i dati dei caratteri in stringhe. In questo, inseriamo prima i dati nel flusso e poi scriviamo questo buffer in un oggetto stringa.
Nelle nostre esercitazioni successive, discuteremo in dettaglio una classe stringstream e altre funzioni di libreria in C ++.
=> Controlla qui per vedere i tutorial di formazione dalla A alla Z di C ++.
Lettura consigliata
- Funzioni stringa Python
- Java String con String Buffer e String Builder Tutorial
- Classificazione dei caratteri C ++ e funzioni di trasformazione
- Funzioni stringa VBScript: funzioni VBScript inStr, Replace, Mid e Trim
- Python String Split Tutorial
- Esercitazione sulle stringhe in C # - Metodi sulle stringhe con esempi di codice
- Stringhe in C ++ con esempi
- Funzioni di libreria in C ++