Una cadena se conoce como una matriz de caracteres. En C++, una secuencia/flujo de caracteres se almacena en una matriz de caracteres. C++ incluye la clase std::string que se utiliza para representar cadenas. Es uno de los tipos de datos más fundamentales en C++ y viene con un enorme conjunto de funciones incorporadas. En este artículo, veremos las funciones de los cálculos de cadenas.
¿Qué es std::cadena?
std::string es una clase en C++ desde C++98. Esta clase es la representación estándar de una cadena de texto. Incluye algunas operaciones típicas de cadenas como buscar, reemplazar, concatenar, comparar, etc. Está presente en archivo de cabecera.
Declaración e inicialización de cadena
std::string company = 'techcodeview.com!';>
Funciones de cadena de uso común en C++
La clase std::string contiene funciones para proporcionar algunas operaciones de cadenas comunes. La siguiente tabla contiene algunas de las funciones más utilizadas en C++:
| S. No. | Categoría | Funciones y operadores | Funcionalidad |
|---|---|---|---|
| 1. java bool a cadena | Longitud de la cuerda | longitud() o tamaño() | Devolverá la longitud de la cadena. |
| 2. | Accediendo a personajes | Indexación (usando matriz[índice]) | Para acceder a caracteres individuales mediante indexación de matrices. |
| en() | Se utiliza para acceder a un carácter en un índice específico. | ||
| 3. | Agregar y concatenar cadenas | + Operador | El operador + se utiliza para concatenar dos cadenas. |
| La función append() agrega una cadena al final de otra. | |||
| 4. | Comparación de cadenas | == Operador | Puede comparar cadenas utilizando el operador ==. |
| La función compare() devuelve un valor entero que indica el resultado de la comparación. | |||
| 5. | Subcadenas | Utilice la función substr() para extraer una subcadena de una cadena. | |
| 6. | buscando | La función find() devuelve la posición de la primera aparición de una subcadena. | |
| 7. | Modificar cadenas | reemplazar() | Utilice la función reemplazar() para modificar una parte de la cadena. |
| insertar() | La función insert() agrega una subcadena en una posición especificada. | ||
| borrar() | Utilice la función erase() para eliminar una parte de la cadena. | ||
| 8. | Conversión | cadena_c() | Para obtener una cadena de estilo C a partir de std::string, puede utilizar la función c_str(). |
Nota: Las funciones anteriores solo funcionan para cadenas de estilo C++ (objetos std::string), no para cadenas de estilo C (matriz de caracteres).
1. Longitud de la cadena: longitud() o tamaño()
Podemos encontrar la longitud de la cadena (número de caracteres) usando longitud() o tamaño() función de la clase std::string.
Sintaxis
string_object. size() or string_object. length()>
Parámetros
- Esta función no toma ningún parámetro.
Valor de retorno
- Esta función devuelve el número de caracteres en el objeto de cadena.
Ejemplo
std::string text = 'geeksforGeeks'; int length = text.length(); //or int length = text.size();>
Devolverá la longitud de la cadena. texto que es 13.
2. Accediendo a los personajes – en()
Generalmente, podemos acceder al carácter de una cadena usando el [] operador de subíndice de matriz e indexación. Pero std::string también tiene una función llamada en() que se puede utilizar para acceder a los caracteres de la cadena.
Sintaxis
string_object. at( index );>
Parámetros
- índice: Representa la posición del carácter en la cadena.
Valor de retorno
- Esta función devuelve el carácter presente en el índice.
Ejemplo
std::string str = 'GEEKSFORGEEKS'; std::cout << str.at(3);>
std::cout imprimirá K en la consola ya que es el carácter presente en el índice 3.
3. Concatenación de cadenas: append() o operador +
Podemos concatenar cadenas en C++ usando dos métodos:
1. + Operador
El operador + está sobrecargado en la clase std::string para realizar la concatenación de cadenas.
Sintaxis
string_object1 + string_object2>
Ejemplo
std::string firstName = 'Geeks'; std::string lastName = 'forGeeks'; std::string fullName = firstName + ' ' + lastName;>
El operador + se utiliza para concatenar dos cadenas. La cadena fullName será techcodeview.com.
2. agregar()
La función append() es otra función miembro para concatenar dos cadenas.
Sintaxis
string_object1. append ( string2 )>
Parámetros
- cadena2: esta función toma la cadena que se agregará como parámetro. Puede ser una cadena de estilo C o C++.
Valor de retorno
- Referencia a la cadena final.
std::string base = 'Hey! Geeks'; base.append(' Welcome to techcodeview.com!'); // Append a string> La función append() agrega una cadena al final de otra.
4. Comparación de cadenas: operador compare() o ==
Al igual que con la concatenación, podemos hacer la comparación de cadenas usando dos métodos:
1. == Operador
El operador de igualdad se puede utilizar para comparar las dos cadenas, ya que está sobrecargado para esta operación en la clase std::string.
Sintaxis
string_object1 == string_object2>
esto volverá verdadero si ambas cadenas son iguales, en caso contrario devuelve FALSO.
Ejemplo
std::string str1 = 'apple'; std::string str2 = 'banana'; if (str1 == str2) { std::cout << 'Strings are equal'; } else { std::cout << 'Strings are not equal'; }> Aquí, las cadenas que no son iguales se imprimirán ya que el operador == devolverá FALSO.
2. comparar()
La función compare() es una función miembro de la clase std::string que se puede utilizar para comparar dos cadenas.
Sintaxis
str1. compare( str2 );>
Parámetros
- str2: Es la cadena a comparar. Puede ser una cadena de estilo C o C++.
Valor de retorno
- Si las cadenas son iguales, devuelve cero.
- Si str1 es mayor que str2, valor de retorno >0
- Si str2 es mayor que str1, valor de retorno <0
Ejemplo
string str1 = 'Geeks'; string str2: = 'Geeksfor'; int result = str1. compare (str2);>
El resultado contendrá un valor menor que cero ya que str2 es mayor que str1.
También podemos comparar la subcadena de str2 usando la función de comparación():
str1.compare(position, length, str2);>
dónde,
- posición: posición de la primera subcadena de caracteres. longitud: longitud de la subcadena. str2: objeto de cadena a comparar.
5. Buscando – buscar()
Podemos usar el encontrar() función de la clase std::string para comprobar si un carácter determinado o una subcadena está presente en la cadena o en una parte de la cadena.
Sintaxis de buscar()
str1.find(var);>
Parámetros
- var: puede ser una cadena de estilo C, una cadena de estilo C++ o un carácter que se va a buscar en la cadena.
Valor de retorno
- Devuelve el puntero a la primera aparición del carácter o una subcadena en la cadena.
Ejemplo
std::string text = 'C++ Programming'; int position = text.find('Programming'); // Find the position of a substring> La variable de posición contendrá 4, que es el comienzo de la primera aparición de la cadena Programación en texto de cadena.
6. Generar subcadena – substr()
Podemos usar el función substr() para generar una parte de la cadena como un nuevo objeto de cadena. Es una función miembro de la clase std::string.
Sintaxis de substr() en C
str1. substr ( start, end );>
Parámetros
- inicio: Posición inicial de la subcadena que se generará. end: Final de la subcadena a generar.
Tipo de devolución
- Devuelve el objeto de cadena recién creado.
Ejemplo
std::string text = 'Hello, World!'; std::string sub = text.substr(7, 5); // Extract 'World'>
En el ejemplo anterior. el sub La cadena contendrá el mundo.
Modificar cadenas
La siguiente función nos permite modificar la cadena actual.
1. insertar()
La función insert() no solo nos permite agregar una cadena sino que también nos permite agregarla en la posición especificada. También es una función miembro de la clase std::string.
Sintaxis
str1. insert (index, str2);>
Parámetros
- str2: cadena a insertar. índice: posición de donde insertar la nueva cadena
Tipo de devolución
- Referencia a str1.
Ejemplo
std::string text = 'I have a cat.'; text.insert(9, ' black'); // Insert ' black' at position 9>
2. reemplazar()
La función reemplazar() reemplaza la parte de la cadena con la otra cadena dada. A diferencia de insertar, se eliminan los caracteres de la parte donde se va a insertar la nueva cadena.
Sintaxis
str1. replace ( index, size, str2 );>
Parámetros
- index: índice de dónde comenzar a reemplazar la nueva cadena. tamaño: longitud de la parte de la cuerda que se va a reemplazar. str2: nueva cadena que se va a insertar.
Tipo de devolución
- Referencia a str1.
Ejemplo
std::string text = 'I like dogs.'; text.replace(7, 4, 'cats'); // Replace 'dogs' with 'cats'>
3. borrar()
La función erase() es una función miembro de la clase std::string que se utiliza para eliminar un carácter o una parte de la cadena.
Sintaxis
str1 .erase( start, end);>
Parámetros
Imágenes de alineación css
- inicio: Posición inicial. final: posición final.
Tipo de devolución
- Referencia a str1.
Ejemplo
std::string text = 'This is an example.'; text.erase(5, 3); // Erase 'is '>
Convertir std::string a cadena C – c_str)_
La función c_str() es una función miembro que se utiliza para convertir la cadena de estilo C++, es decir, objetos std::string a una cadena de estilo C, es decir, una matriz de caracteres.
Sintaxis
str1.c_str()>
Parámetros
- Esta función no toma ningún parámetro.
Valor de retorno
- Puntero a la matriz de caracteres equivalente.
Ejemplo
std::string str = 'C++'; const char* cstr = str.c_str()>
Ejemplo de funciones de cadena en C++
El siguiente código demuestra el uso de las funciones de cadena especificadas anteriormente:
C++
// C++ Code to demostrate various functions available in> // String class> > #include> #include> > using> namespace> std;> > int> main()> {> >// Creating and initializing strings> >string greeting =>'Hello, World!'>;> >cout << greeting << endl;> >string name;> > >// Input from the user> >cout <<>'Enter your name: '>;> >cin>> nombre;> >cout << name << endl;> > >// String length> >int> length = greeting.length();> >cout << length << endl;> > >// Accessing characters> >char> firstChar = greeting[0];> >char> secondChar = greeting.at(1);> >cout << firstChar <<>' '> << secondChar << endl;> > >// Appending and concatenating strings> >string firstName =>'Geek'>;> >string lastName =>'Geeks'>;> >string fullName = firstName +>' '> + lastName;> >cout << fullName << endl;> >string base =>'Hello'>;> >cout << base << endl;> >base.append(>' World!'>);> >cout << base << endl;> > >// String comparison> >string str1 =>'apple'>;> >string str2 =>'banana'>;> >if> (str1 == str2) {> >cout <<>'Strings are equal'> << endl;> >}> >else> {> >cout <<>'Strings are not equal'> << endl;> >}> > >int> result = str1.compare(str2);> >if> (result == 0) {> >cout <<>'Strings are equal'> << endl;> >}> >else> if> (result <0) {> >cout <<>'str1 comes before str2'> << endl;> >}> >else> {> >cout <<>'str1 comes after str2'> << endl;> >}> > >// Substrings> >string text =>'Hello, World!'>;> >cout << text << endl;> >string sub = text.substr(7, 5);> >cout << sub << endl;> > >// Searching> >string searchIn =>'C++ Programming'>;> >size_t> position = searchIn.find(>'Programming'>);> >if> (position != string::npos) {> >cout <<>'Found at position '> << position << endl;> >}> >else> {> >cout <<>'Not found'> << endl;> >}> > >// Modifying strings> >string modify =>'I like dogs.'>;> >modify.replace(7, 4,>'cats'>);> >cout << modify << endl;> >modify.insert(6,>' black'>);> >cout << modify << endl;> >modify.erase(6, 6);> >cout << modify << endl;> > >// Conversion> >string str =>'C++'>;> >const> char>* cstr = str.c_str();> >cout << cstr << endl;> > >return> 0;> }> |
>
>
Producción
Hello, World! Enter your name: Geeks Geeks 13 H e Geek Geeks Hello Hello World! Strings are not equal str1 comes before str2 Hello, World! World Found at position 4 I like cats. I like black cats. I like cats. C++>