Las cadenas de C++ son secuencias de caracteres almacenados en una matriz de caracteres. Las cadenas se utilizan para almacenar palabras y texto. También se utilizan para almacenar datos, como números y otro tipo de información. Las cadenas en C++ se pueden definir usando el std::clase de cadena o el Matrices de caracteres estilo C.

1. Cuerdas estilo C
Estas cadenas se almacenan como la antigua matriz de caracteres terminada por un carácter nulo ' ' . Son el tipo de cadenas que C++ heredó del lenguaje C.
Sintaxis:
char str[] = 'techcodeview.com';>
Ejemplo:
C++
// C++ Program to demonstrate strings> #include> using> namespace> std;> int> main()> {> >char> s[] =>'techcodeview.com'>;> >cout << s << endl;> >return> 0;> }> |
>
>Producción
techcodeview.com>
2. std::clase de cadena
Estos son los nuevos tipos de cadenas que se introducen en C++ como clase std::string definida dentro del archivo de encabezado. Esto proporciona muchas ventajas sobre las cadenas de estilo C convencionales, como tamaño dinámico, funciones miembro, etc.
Sintaxis:
std::string str('techcodeview.com');> Ejemplo:
C++
// C++ program to create std::string objects> #include> using> namespace> std;> int> main()> {> >string str(>'techcodeview.com'>);> >cout << str;> >return> 0;> }> |
>
>Producción
techcodeview.com>
Una forma más de crear cadenas que tengan el mismo carácter repitiéndose una y otra vez.
Sintaxis:
std::string str(number,character);>
Ejemplo:
C++
#include> using> namespace> std;> int> main()> {> >string str(5,>'g'>);> >cout << str;> >return> 0;> }> |
>
>
Producción:
ggggg>
Formas de definir una cadena en C++
Las cadenas se pueden definir de varias maneras en C++. Se puede acceder a las cadenas desde la biblioteca estándar utilizando la clase de cadena. Las matrices de caracteres también se pueden utilizar para definir cadenas. String proporciona un rico conjunto de funciones, como búsqueda y manipulación, que son métodos de uso común. A pesar de ser menos avanzado que la clase string, este método todavía se usa ampliamente, ya que es más eficiente y fácil de usar. Las formas de definir una cadena en C++ son:
- Usando la palabra clave String
- Usando cuerdas estilo C
1. Usando palabra clave de cadena
Es más conveniente definir una cadena con la palabra clave string en lugar de usar la palabra clave array porque es fácil de escribir y comprender.
Sintaxis:
string s = 'techcodeview.com'; string s('techcodeview.com');> Ejemplo:
C++
// C++ Program to demonstrate use of string keyword> #include> using> namespace> std;> int> main()> {> >string s =>'techcodeview.com'>;> >string str(>'techcodeview.com'>);> >cout <<>'s = '> << s << endl;> >cout <<>'str = '> << str << endl;> >return> 0;> }> |
>
>Producción
s = techcodeview.com str = techcodeview.com>
2. Usar cuerdas estilo C
Uso de funciones de bibliotecas de cadenas de estilo C como strcpy(), strcmp() y strcat() para definir cadenas. Este método es más complejo y no se usa tan ampliamente como los otros dos, pero puede resultar útil cuando se trata de código heredado o cuando se necesita rendimiento.
char s[] = {'g', 'f', 'g', ' '}; char s[4] = {'g', 'f', 'g', ' '}; char s[4] = 'gfg'; char s[] = 'gfg';> Ejemplo:
C++
// C++ Program to demonstrate C-style string declaration> #include> using> namespace> std;> int> main()> {> >char> s1[] = {>'g'>,>'f'>,>'g'>,>' '> };> >char> s2[4] = {>'g'>,>'f'>,>'g'>,>' '> };> >char> s3[4] =>'gfg'>;> >char> s4[] =>'gfg'>;> >cout <<>'s1 = '> << s1 << endl;> >cout <<>'s2 = '> << s2 << endl;> >cout <<>'s3 = '> << s3 << endl;> >cout <<>'s4 = '> << s4 << endl;> >return> 0;> }> |
>
>Producción
s1 = gfg s2 = gfg s3 = gfg s4 = gfg>
Otro ejemplo de cadena estilo C:
C++
#include> using> namespace> std;> int> main()> {> >string S =>'Geeeks for Geeks'>;> >cout <<>'Your string is= '>;> >cout << S << endl;> >return> 0;> }> |
>
>Producción
Your string is= Geeeks for Geeks>
Cómo tomar entrada de cadena en C++
La entrada de cadena significa aceptar una cadena de un usuario. En C++. Tenemos diferentes tipos de entrada del usuario que dependen de la cadena. La forma más común es recibir información con comiendo palabra clave con el operador de extracción (>>) en C++. Los métodos para tomar una cadena como entrada son:
- comiendo
- obtener línea
- flujo de cuerdas
1. Usando Cin
La forma más sencilla de ingresar una cadena es usar el comiendo comando junto con el operador de extracción de flujo (>>).
Sintaxis:
cin>>s;>
Ejemplo:
C++
ejemplos de programación en Python
// C++ Program to demonstrate string input using cin> #include> using> namespace> std;> int> main() {> >string s;> > >cout<<>'Enter String'>< cin>>s; corte<<'String is: '< return 0; }> |
>
>Producción
Enter String String is:>
Producción:
Enter String techcodeview.com String is: techcodeview.com>
2. Usando getline
El Función getline() en C++ se utiliza para leer una cadena de un flujo de entrada. Se declara en el archivo de encabezado.
Sintaxis:
getline(cin,s);>
Ejemplo:
C++
// C++ Program to demonstrate use of getline function> #include> using> namespace> std;> int> main()> {> >string s;> >cout <<>'Enter String'> << endl;> >getline(cin, s);> >cout <<>'String is: '> << s << endl;> >return> 0;> }> |
>
>Producción
Enter String String is:>
Producción:
Enter String techcodeview.com String is: techcodeview.com>
3. Usando secuencia de cadenas
El clase stringstream en C++ se utiliza para tomar varias cadenas como entrada a la vez.
Sintaxis:
stringstream stringstream_object(string_name);>
Ejemplo:
C++
diferencia en Python
// C++ Program to demonstrate use of stringstream object> #include> #include> #include> using> namespace> std;> int> main()> {> >string s =>' techcodeview.com to the Moon '>;> >stringstream obj(s);> >// string to store words individually> >string temp;> >//>> el operador leerá del objeto stringstream> >while> (obj>> temperatura) {> >cout << temp << endl;> >}> >return> 0;> }> |
>
>Producción
techcodeview.com to the Moon>
¿Cómo pasar cadenas a funciones?
De la misma manera que pasamos una matriz a una función, las cadenas en C++ se pueden pasar a funciones como matrices de caracteres. Aquí hay un programa de ejemplo:
Ejemplo:
C++
// C++ Program to print string using function> #include> using> namespace> std;> void> print_string(string s)> {> >cout <<>'Passed String is: '> << s << endl;> >return>;> }> int> main()> {> >string s =>'techcodeview.com'>;> >print_string(s);> >return> 0;> }> |
>
>Producción
Passed String is: techcodeview.com>
Punteros y cadenas
Los punteros en C++ son representaciones simbólicas de direcciones. Permiten que los programas simulen llamadas por referencia, así como también creen y manipulen estructuras de datos dinámicas. Al usar punteros podemos obtener el primer carácter de la cadena, que es la dirección inicial de la cadena. Como se muestra a continuación, se puede acceder a la cadena dada e imprimirla a través de los punteros.
Ejemplo:
C++
// C++ Program to print string using pointers> #include> using> namespace> std;> int> main()> {> >string s =>'Geeksforgeeks'>;> >// pointer variable declared to store the starting> >// address of the string> >char>* p = &s[0];> >// this loop will execute and print the character till> >// the character value is null this loop will execute and> >// print the characters> >while> (*p !=>' '>) {> >cout << *p;> >p++;> >}> >cout << endl;> >return> 0;> }> |
>
>Producción
Geeksforgeeks>
Diferencia entre cadena y matriz de caracteres en C++
La principal diferencia entre una cadena y una matriz de caracteres es que las cadenas son inmutables, mientras que las matrices de caracteres no lo son.
| Cadena | Matriz de caracteres |
|---|---|
| Las cadenas definen objetos que se pueden representar como secuencias de cadenas. | El carácter nulo termina una matriz de caracteres. |
| No se produce ninguna decadencia de la matriz en las cadenas, ya que las cadenas se representan como objetos. | la amenaza de decaimiento de matriz está presente en el caso de la matriz de caracteres |
| Una clase de cadena proporciona numerosas funciones para manipular cadenas. | Las matrices de caracteres no ofrecen funciones incorporadas para manipular cadenas. |
| La memoria se asigna dinámicamente. | El tamaño de la matriz de caracteres debe asignarse estáticamente. |
Conozca más sobre el diferencia entre cadenas y matrices de caracteres en C++
Funciones de cadena de C++
C++ proporciona algunas funciones incorporadas que se utilizan para la manipulación de cadenas, como las funciones strcpy() y strcat() para copiar y concatenar cadenas. Algunos de ellos son:
| Función | Descripción |
|---|---|
| longitud() | Esta función devuelve la longitud de la cadena. |
| intercambio() | Esta función se utiliza para intercambiar los valores de 2 cadenas. |
| tamaño() | Se utiliza para encontrar el tamaño de la cuerda. |
| cambiar tamaño() | Esta función se utiliza para cambiar el tamaño de la longitud de la cadena hasta el número determinado de caracteres. |
| encontrar() | Se utiliza para encontrar la cadena que se pasa en los parámetros. |
| hacer retroceder() | Esta función se utiliza para insertar el carácter pasado al final de la cadena. |
| pop_back() | Esta función se utiliza para extraer el último carácter de la cadena. |
| claro() | Esta función se utiliza para eliminar todos los elementos de la cadena. |
| strncmp() | Esta función compara como máximo el primer número de bytes de ambas cadenas pasadas. |
| strncpy() | Esta función es similar a la función strcpy(), excepto que se copian como máximo n bytes de src |
| strrchr() | Esta función localiza la última aparición de un carácter en la cadena. |
| tira() | Esta función agrega una copia de la cadena de origen al final de la cadena de destino. |
| encontrar() | Esta función se utiliza para buscar una determinada subcadena dentro de una cadena y devuelve la posición del primer carácter de la subcadena. |
| reemplazar() | Esta función se utiliza para reemplazar cada elemento en el rango [primero, último) que es igual al valor anterior con un valor nuevo. |
| substr() | Esta función se utiliza para crear una subcadena a partir de una cadena determinada. |
| comparar() | Esta función se utiliza para comparar dos cadenas y devuelve el resultado en forma de un número entero. |
| borrar() | Esta función se utiliza para eliminar una determinada parte de una cadena. |
Funciones de iterador de cadenas de C++
En C++, las funciones de iterador de cadenas incorporadas brindan al programador una manera fácil de modificar y recorrer elementos de cadena. Estas funciones son:
| Funciones | Descripción |
|---|---|
| comenzar() | Esta función devuelve un iterador que apunta al comienzo de la cadena. |
| fin() | Esta función devuelve un iterador que apunta al final de la cadena. |
| encontrar() | Esta función se utiliza para encontrar la última aparición de la cadena. |
| comenzar() | Esta función devuelve un iterador inverso que apunta al final de la cadena. |
| prestar() | Esta función devuelve un iterador inverso que apunta al comienzo de la cadena. |
| comenzar() | Esta función devuelve un const_iterator que apunta al comienzo de la cadena. |
| algunos() | Esta función devuelve un const_iterator que apunta al final de la cadena. |
| crbegin() | Esta función devuelve un const_reverse_iterator que apunta al final de la cadena. |
| crédito() | Esta función devuelve un const_reverse_iterator que apunta al comienzo de la cadena. |
Ejemplo:
C++
// C++ Program to demonstrate string iterator functions> #include> using> namespace> std;> int> main()> {> >// declaring an iterator> >string::iterator itr;> >// declaring a reverse iterator> >string::reverse_iterator rit;> >string s =>'techcodeview.com'>;> >itr = s.begin();> > >cout <<>'Pointing to the start of the string: '> << *itr<< endl;> >itr = s.end() - 1;> >cout <<>'Pointing to the end of the string: '> << *itr << endl;> >rit = s.rbegin();> >cout <<>'Pointing to the last character of the string: '> << *rit << endl;> >rit = s.rend() - 1;> >cout <<>'Pointing to the first character of the string: '> << *rit << endl;> >return> 0;> }> |
>
>Producción
Pointing to the start of the string: G Pointing to the end of the string: s Pointing to the last character of the string: s Pointing to the first character of the string: G>
Funciones de capacidad de cadena
En C++, las funciones de capacidad de cadenas se utilizan para gestionar el tamaño y la capacidad de las cadenas. Las funciones primarias de la capacidad incluyen:
| Función | Descripción |
|---|---|
| longitud() | Esta función se utiliza para devolver el tamaño de la cadena. |
| capacidad() | Esta función devuelve la capacidad que el compilador asigna a la cadena. |
| cambiar tamaño() | Esta función nos permite aumentar o disminuir el tamaño de la cadena. |
| encoger_para_adaptar() | Esta función disminuye la capacidad y la iguala al mínimo. |
Ejemplo:
C++
#include> using> namespace> std;> int> main()> {> >string s =>'techcodeview.com'>;> > >// length function is used to print the length of the string> >cout <<>'The length of the string is '> << s.length() << endl;> > >// capacity function is used to print the capacity of the string> >cout <<>'The capacity of string is '> << s.capacity()<< endl;> > >// the string.resize() function is used to resize the string to 10 characters> >s.resize(10);> > >cout <<>'The string after using resize function is '> << s << endl;> > >s.resize(20);> > >cout <<>'The capacity of string before using shrink_to_fit function is '><< s.capacity() << endl;> > >// shrink to fit function is used to reduce the capacity of the container> >s.shrink_to_fit();> >cout <<>'The capacity of string after using shrink_to_fit function is '><< s.capacity() << endl;> >return> 0;> }> |
>
>Producción
The length of the string is 13 The capacity of string is 15 The string after using resize function is GeeksforGe The capacity of string before using shrink_to_fit function is 30 The capacity of string...>
En conclusión, este artículo explica cómo se pueden desafiar las cadenas en C++ utilizando matrices de caracteres y clases de cadenas. La clase de cadena proporciona funciones más avanzadas, mientras que la matriz de caracteres proporciona funciones básicas pero es eficiente y fácil de usar. En este artículo, también analizamos los diversos métodos para recibir información del usuario.
Para saber más sobre la clase std::string, consulte el artículo – std::clase de cadena en C++