C++ tiene en su definición una forma de representar una secuencia de caracteres como un objeto de la clase . Esta clase se llama std:: string. La clase String almacena los caracteres como una secuencia de bytes con la funcionalidad de permitir el acceso al carácter de un solo byte .
String frente a array de caracteres
Cuerda |
array de caracteres |
---|---|
Una string es una clase que define objetos que se representan como una secuencia de caracteres. | Una array de caracteres es simplemente una array de caracteres que puede terminar con un carácter nulo. |
En el caso de las strings, la memoria se asigna dinámicamente . Se puede asignar más memoria en tiempo de ejecución bajo demanda. Como no hay memoria preasignada, no se desperdicia memoria . | El tamaño de la array de caracteres debe asignarse estáticamente , no se puede asignar más memoria en tiempo de ejecución si es necesario. La memoria asignada no utilizada también se desperdicia |
Como las strings se representan como objetos, no se produce el decaimiento de la array . | Existe una amenaza de descomposición de la array en el caso de la array de caracteres. |
Las strings son más lentas en comparación con la implementación que con la array de caracteres. | La implementación de la array de caracteres es más rápida que std:: string. |
La clase String define una serie de funcionalidades que permiten múltiples operaciones en strings. | Las arrays de caracteres no ofrecen muchas funciones integradas para manipular strings. |
Operaciones en strings
1) Funciones de entrada
Función | Definición |
---|---|
obtener line() | Esta función se utiliza para almacenar un flujo de caracteres introducidos por el usuario en la memoria de objetos. |
hacer retroceder() | Esta función se utiliza para ingresar un carácter al final de la string. |
pop_back() | Introducida desde C++11 (para strings), esta función se usa para eliminar el último carácter de la string. |
Ejemplo:
CPP
// C++ Program to demonstrate the working of // getline(), push_back() and pop_back() #include <iostream> #include <string> // for string class using namespace std; // Driver Code int main() { // Declaring string string str; // Taking string input using getline() getline(cin, str); // Displaying string cout << "The initial string is : "; cout << str << endl; // Inserting a character str.push_back('s'); // Displaying string cout << "The string after push_back operation is : "; cout << str << endl; // Deleting a character str.pop_back(); // Displaying string cout << "The string after pop_back operation is : "; cout << str << endl; return 0; }
Producción:
The initial string is : geeksforgeek The string after push_back operation is : geeksforgeeks The string after pop_back operation is : geeksforgeek
2) Funciones de capacidad
Función | Definición |
---|---|
capacidad() | Esta función devuelve la capacidad asignada a la string, que puede ser igual o mayor que el tamaño de la string. Se asigna espacio adicional para que cuando se agreguen los nuevos caracteres a la string, las operaciones se puedan realizar de manera eficiente. |
redimensionar() | Esta función cambia el tamaño de la string, el tamaño se puede aumentar o disminuir. |
longitud() | Esta función encuentra la longitud de la string. |
reducir_para_ajustar() | Esta función disminuye la capacidad de la string y la hace igual a la capacidad mínima de la string. Esta operación es útil para ahorrar memoria adicional si estamos seguros de que no es necesario realizar ninguna adición adicional de caracteres. |
Ejemplo:
CPP
// C++ Program to demonstrate the working of // capacity(), resize() and shrink_to_fit() #include <iostream> #include <string> // for string class using namespace std; // Driver Code int main() { // Initializing string string str = "geeksforgeeks is for geeks"; // Displaying string cout << "The initial string is : "; cout << str << endl; // Resizing string using resize() str.resize(13); // Displaying string cout << "The string after resize operation is : "; cout << str << endl; // Displaying capacity of string cout << "The capacity of string is : "; cout << str.capacity() << endl; // Displaying length of the string cout << "The length of the string is :" << str.length() << endl; // Decreasing the capacity of string // using shrink_to_fit() str.shrink_to_fit(); // Displaying string cout << "The new capacity after shrinking is : "; cout << str.capacity() << endl; return 0; }
The initial string is : geeksforgeeks is for geeks The string after resize operation is : geeksforgeeks The capacity of string is : 26 The length of the string is :13 The new capacity after shrinking is : 15
3) Funciones de iterador
Función | Definición |
---|---|
empezar() | Esta función devuelve un iterador al comienzo de la string. |
final() | Esta función devuelve un iterador al final de la string. |
rbegin() | Esta función devuelve un iterador inverso que apunta al final de la string. |
desgarrar() | Esta función devuelve un iterador inverso que apunta al principio de la string. |
Ejemplo:
CPP
// C++ Program to demonstrate the working of // begin(), end(), rbegin(), rend() #include <iostream> #include <string> // for string class using namespace std; // Driver Code int main() { // Initializing string` string str = "geeksforgeeks"; // Declaring iterator std::string::iterator it; // Declaring reverse iterator std::string::reverse_iterator it1; // Displaying string cout << "The string using forward iterators is : "; for (it = str.begin(); it != str.end(); it++) cout << *it; cout << endl; // Displaying reverse string cout << "The reverse string using reverse iterators is " ": "; for (it1 = str.rbegin(); it1 != str.rend(); it1++) cout << *it1; cout << endl; return 0; }
The string using forward iterators is : geeksforgeeks The reverse string using reverse iterators is : skeegrofskeeg
4) Funciones de manipulación:
Función | Definición |
---|---|
copiar(“array de caracteres”, len, pos) | Esta función copia la substring en la array de caracteres de destino mencionada en sus argumentos. Se necesitan 3 argumentos, la array de caracteres de destino, la longitud que se copiará y la posición inicial en la string para comenzar a copiar. |
intercambio() | Esta función intercambia una string con otra. |
Ejemplo:
CPP
// C++ Program to demonstrate the working of // copy() and swap() #include <iostream> #include <string> // for string class using namespace std; // Driver Code int main() { // Initializing 1st string string str1 = "geeksforgeeks is for geeks"; // Declaring 2nd string string str2 = "geeksforgeeks rocks"; // Declaring character array char ch[80]; // using copy() to copy elements into char array // copies "geeksforgeeks" str1.copy(ch, 13, 0); // Displaying char array cout << "The new copied character array is : "; cout << ch << endl; // Displaying strings before swapping cout << "The 1st string before swapping is : "; cout << str1 << endl; cout << "The 2nd string before swapping is : "; cout << str2 << endl; // using swap() to swap string content str1.swap(str2); // Displaying strings after swapping cout << "The 1st string after swapping is : "; cout << str1 << endl; cout << "The 2nd string after swapping is : "; cout << str2 << endl; return 0; }
The new copied character array is : geeksforgeeks The 1st string before swapping is : geeksforgeeks is for geeks The 2nd string before swapping is : geeksforgeeks rocks The 1st string after swapping is : geeksforgeeks rocks The 2nd string after swapping is : geeksforgeeks is for geeks
Debe leer: Clase de string C++ y sus aplicaciones
Este artículo es una contribución de Manjeet Singh . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA