c character conversion functions
Aquest tutorial inclou funcions de conversió de caràcters C ++ com ara la conversió d'un caràcter a enter o la matriu de cadenes i caràcters a cadena amb exemples de codi:
A C ++, a mesura que desenvolupem aplicacions que impliquen molts tipus, es fa necessari convertir d’un tipus a un altre. Ja hem vist algunes conversions de tipus bàsic als nostres tutorials anteriors.
També hem vist conversions de cadenes i conversió de tipus numèrics a cadenes. A part de les funcions de conversió de cadenes que ja hem vist, hi ha algunes funcions que s’utilitzen per convertir un caràcter en altres tipus de dades.
Aquestes són les funcions que prenen un sol caràcter o una matriu de caràcters i les converteixen a altres tipus de dades.
=> Llegiu la sèrie de formació Easy C ++.
Què aprendreu:
- Funcions de conversió de caràcters C ++
- Conclusió
Funcions de conversió de caràcters C ++
Quan es tracta de la conversió d’un sol caràcter a enter o cadena i la conversió de matriu de caràcters a cadena, les funcions de conversió canvien lleugerament de les de les funcions de conversió de cadenes.
En aquest tutorial parlarem de les conversions següents:
- Conversió de caràcters a enters (caràcters a C ++ int)
- Conversió de caràcters a cadenes (caràcters a cadenes C ++)
- Conversió de matriu de caràcters a cadena
Les dues primeres conversions tracten d’un sol caràcter, mentre que la darrera conversió consisteix en una matriu de caràcters.
Converteix el caràcter en enter - el caràcter int
Per convertir un sol caràcter en un tipus enter, tenim dos mètodes, tal com s’indica a continuació:
# 1) Emetent
Podem utilitzar l’operació de fosa per convertir un sol caràcter al seu equivalent enter. En aquest cas, es mostrarà l'equivalent ASCII del caràcter.
Penseu en la conversió següent,
char a = 'A'; int num = (int) a;
En aquest cas, 'num' tindrà el valor 65 que equival a ASCII del caràcter 'A'.
Alternativament, podem utilitzar la següent operació si volem convertir un caràcter numèric en un valor enter.
char a = '2'; int num = a-48;
Aquí, 48 és el valor ASCII de 0. El que es fa aquí és que la segona línia a-48 converteix implícitament char a al seu equivalent ASCII i després la resta de 48 (50-48) que dóna com a resultat el valor enter 2.
# 2) Usant stringstream
Com ja es va veure al tutorial sobre les funcions de conversió de cadenes, podem convertir un sol caràcter representat com a objecte de cadena de cadenes a un enter o qualsevol valor numèric.
A continuació es mostra un codi per demostrar-ho.
#include #include #include using namespace std; int main() { stringstream str; str <> x; cout<<'Converted value of character 5 :'< Sortida:
Valor convertit del caràcter 5: 5
Converteix caràcters en cadenes: caràcters en cadenes
Hi ha diverses maneres d’utilitzar les quals podem convertir un sol caràcter en una cadena.
Analitzem alguns d’aquests mètodes.
# 1) Ús d'un constructor proporcionat per classe de cadenes.
Prototip de funció: cadena s (int n, char x);
Paràmetres:
n => Mida de la cadena a generar.
x => Caràcter que s'ha de convertir en una cadena.
Valor de retorn: s obtingut per conversió de caràcter.
Descripció: El constructor de la classe de cadena pren la longitud de la cadena (n) i un sol caràcter com a paràmetres i després converteix el caràcter en cadena.
A continuació es mostra un exemple simple per demostrar la conversió d’un sol caràcter a cadena.
#include #include using namespace std; int main() { string str(1,'A'); cout<<'The string obtained by converting single character : '< Sortida:
La cadena obtinguda mitjançant la conversió d’un sol caràcter: A
La conversió anterior és senzilla. Anomenem el constructor de cadenes i especifiquem la longitud de la cadena (primer paràmetre) com a 1, ja que estem convertint un sol caràcter i el segon paràmetre és el caràcter que s’ha de convertir a cadena (en aquest cas ‘A’).
# 2) Utilitzant std :: string Operator = I + =
Els operadors de classe std :: string, = i + = estan sobrecarregats de caràcters. Així, podem utilitzar aquests operadors per convertir un sol caràcter en cadena.
Això es demostra al programa que es mostra a continuació.
#include #include using namespace std; int main() { string str; char c = 'B'; str = 'C'; str += c; cout<<'The string obtained by converting single character : '< Sortida:
La cadena obtinguda mitjançant la conversió d’un sol caràcter: CB
En aquest programa, hem utilitzat els operadors sobrecarregats, = i + =. Hem declarat un objecte de cadena i després li hem assignat un caràcter mitjançant l'operador =. A continuació, fem servir l'operador + = i assignem un altre caràcter a l'objecte cadena.
Veiem que la segona vegada que el personatge es concatena amb els continguts ja existents a l’objecte de cadena.
# 3) Ús de diversos mètodes de std :: string
La classe std :: string admet diversos mètodes sobrecarregats mitjançant els quals podem passar un caràcter a una cadena que en última instància converteix caràcter en cadena.
Alguns dels mètodes de la classe std :: string són:
- fer retrocedir
Prototip de funció: buit push_back (caràcter c)
Paràmetres: c => Caràcter a assignar a la cadena
Valor de retorn: torna nul
Descripció: Aquesta funció està sobrecarregada per als caràcters i assigna un caràcter al final de la cadena.
- afegir
Prototip de funció: string & append (mida_t n, caràcter c)
Paràmetres:
n => Nombre de vegades que s'ha d'afegir el caràcter.
c => Caràcter que cal afegir a la cadena.
Valor de retorn: Cadena obtinguda per conversió de caràcter.
Descripció: La funció Add de std :: string té dos arguments. El primer argument és el nombre de vegades que s’ha de copiar el caràcter a la cadena. El segon argument és el caràcter real a copiar. Per tant, la funció d'afegir assignarà aquestes moltes còpies de caràcters a la cadena tal com s'especifica al primer argument.
què és un deque c ++
- assignar
Prototip de funció: string & assign (size_t n, char c);
Paràmetres:
n => Nombre de còpies del personatge.
c => Caràcter que s'ha de copiar a la cadena.
Valor de retorn: Cadena obtinguda per conversió de caràcter.
Descripció: La funció Assigna substitueix el contingut de la cadena actual per n (primer argument) còpies del caràcter (segon argument).
- inserir
Prototip de funció: string & insert (size_t pos, size_t n, char c);
Paràmetres:
pos => Posició al començament de quins caràcters s'han d'inserir.
n => Nombre de còpies del personatge.
c => Caràcter que cal inserir a la cadena.
Valor de retorn: Cadena obtinguda per conversió de caràcter.
Descripció: Aquesta funció insereix n (segon argument) còpies del caràcter (tercer argument) a la posició inicial de la cadena especificada per pos (primer argument).
A continuació, desenvoluparem un programa que demostri totes les funcions anteriors de la classe std :: string.
#include #include using namespace std; int main() { string str; str.push_back('A'); cout<<'push_back single character : '< Sortida:
push_back caràcter únic: A
afegir caràcter únic: C
assigna un caràcter únic: D
inseriu un sol caràcter: BD
El programa anterior mostra les funcions push_back, append, assign i insert. La sortida mostra el resultat o la cadena retornada per cada funció.
# 4) Utilitzant std :: stringstream
Ja hem comentat la conversió de tipus numèrics a una cadena mitjançant stringstream. La conversió de caràcters a una cadena també segueix el mateix principi quan s’utilitza una classe stringstream.
El caràcter donat s’insereix al flux i després el contingut s’escriu a la cadena.
Aclarim-ho mitjançant un programa C ++.
#include #include #include using namespace std; int main() { string str; stringstream mystr; mystr<>str; cout<<'The string obtained by converting single character : '< Sortida:
La cadena obtinguda convertint un sol caràcter: A
Primer inserim el caràcter a l’objecte de flux i, a continuació, aquest buffer s’escriu a l’objecte de cadena. Així, la sortida del programa mostra el contingut de l'objecte de cadena que és un sol caràcter.
Converteix matriu de caràcters en cadena
La classe std :: string té molts mètodes que poden ser útils quan es tracta de matrius de caràcters. Per tant, és aconsellable convertir matrius de caràcters en objectes de cadena i després utilitzar-los per poder escriure programes eficients.
Hi ha dos mètodes per convertir la matriu de caràcters en una cadena com es mostra a continuació.
# 1) Utilització del constructor de cadenes
Com ja s'ha comentat per convertir un sol caràcter en cadena, podem fer ús del constructor de cadenes per convertir una matriu de caràcters en cadena.
Prototip de funció: string (const char * s);
Paràmetres: s => matriu de caràcters amb finalització nul·la que es convertirà en cadena
Valor de retorn: cadena => cadena convertida
Descripció: Aquest constructor sobrecarregat de la classe std :: string pren la matriu de caràcters o la cadena C com a argument i retorna la cadena.
El programa següent mostra aquesta conversió.
#include #include using namespace std; int main() { char myarray[] = {'Software Testing Help'}; string mystr(myarray); cout<<'Converted string: '< Sortida:
Cadena convertida: ajuda de proves de programari
El programa anterior és bastant senzill. Només cal una trucada al constructor std :: string per convertir la matriu de caràcters donada a cadena.
# 2) Ús = Operador sobrecarregat
Un altre enfocament per convertir la matriu de caràcters en objecte de cadena és utilitzar un operador sobrecarregat =. En això podem assignar directament la matriu de caràcters a l’objecte string mitjançant l’operador = i el contingut es passarà a string.
L'exemple següent ho mostra.
#include #include using namespace std; int main() { char myarray[] = {'Software Testing Help'}; string mystr; mystr = myarray; cout<<'Converted string: '< Sortida:
Cadena convertida: ajuda de proves de programari
El programa anterior assigna la matriu directament a un objecte de cadena mitjançant l'operador = que fa que es copiï el contingut de la matriu de caràcters a l'objecte de cadena.
Conclusió
Hem vist diversos mètodes per convertir un sol caràcter i matrius de caràcters en objectes de cadena. Com que la classe std :: string té moltes funcions que ens permeten manipular les cadenes de manera eficient, sempre és útil treballar amb dades de caràcters convertint-les primer en cadenes.
Més lectura = >> Converteix Char a Int a Java
Més lectura = >> Converteix Char a String a Java
També podem utilitzar mètodes de classe per convertir dades de caràcters en cadenes. En això, primer inserim les dades al flux i després escrivim aquest buffer a un objecte de cadena.
En els nostres tutorials posteriors, analitzarem detalladament una classe stringstream i més funcions de biblioteca en C ++.
=> Consulteu aquí per veure tutorials de formació A-Z de C ++.
Lectura recomanada
- Funcions de cadena de Python
- Java String amb buffer de cadenes i tutorial de Generador de cadenes
- Funcions de classificació i transformació de caràcters C ++
- Funcions de cadenes VBScript: funcions VSScript inStr, Replace, Mid i Trim
- Tutorial Python String Split
- Tutorial de cadenes C #: mètodes de cadenes amb exemples de codi
- Cadenes en C ++ amb exemples
- Funcions de biblioteca a C ++