Introducción a la matriz de cadenas en C ++
Hay muchos tipos de datos en C ++, como entero, flotante, carácter, cadena. El tipo de datos de cadena es una matriz de caracteres que termina con un carácter nulo ('\ 0') que denota el final de la matriz o cadena. C no tenía como tal la cadena de tipo de datos, por lo que tuvimos que formar una matriz de caracteres para formar una cadena. En C ++, tenemos la cadena de tipo de datos incorporada.
Ejemplo de carácter: 'a' o 'A'
Ejemplo de cadena (C ++): "inglés"
Cadena: matriz de caracteres: Cadena (0) = 'E'
Cadena (1) = 'n'
Cadena (2) = 'g'
Cadena (3) = 'l'
Cadena (4) = 'i'
Cadena (5) = 's'
Cadena (6) = 'h'
Cadena (7) = '\ 0'
Las cadenas se pueden declarar, escribir e imprimir directamente en C ++. Además, se puede acceder a cada carácter en una cadena usando un índice similar a la indexación en la matriz. En el caso de la cadena, cuando leemos en forma de una matriz de caracteres usando scanf (), detendrá la cadena o la función de lectura cuando encuentre el primer espacio en blanco. Para evitar esto, se puede usar la función gets (). Esto lee una línea completa y dejará de leer solo cuando el usuario presione 'Enter'.
String Array en C ++ una matriz de múltiples cadenas
La matriz de cadenas o matriz de cadenas es una matriz de múltiples cadenas. Esto se puede declarar de la siguiente manera:
string Animals(4) = ("Elephant", "Fox", "Lion", "Tiger");
Para imprimir toda la matriz de cadenas, se puede usar for loop:
Código:
for(int i = 0; i<4; i++) (
cout << Animals(i) << endl;
)
Salida:
¿Cómo acceder a los elementos desde la matriz de cadenas?
La matriz de cadenas es similar a una matriz bidimensional. La primera dimensión o índice especifica el índice de cadena de la 1ª palabra / cadena tipo matriz o la 2ª palabra / cadena y así sucesivamente. Mientras que la segunda dimensión o índice especifica qué carácter en esa palabra / cadena específica.
Para explicarlo con un claro ejemplo:
Animals(2)(1) = 'i'
En el ejemplo anterior, el primer índice '2' especifica que es la segunda cadena de la matriz: "Tiger". El segundo índice '1' especifica que es la segunda letra o índice 1 de la palabra "Tigre". Utilizando la indexación bidimensional, se puede acceder fácilmente a cada carácter de cada cadena.
Asignación o matriz de cadenas de definición
Existen diferentes métodos de asignación de una serie de cadenas:
1. Matriz 2D de Char (que también se puede usar en C)
Nombre de char (número máximo de elementos) (tamaño máximo de cada elemento)
color char (4) (8) = ("azul", "rojo", "blanco", "negro")
Código:
int main() (
char color(4)(8) = (“blue”, “red”, “white”, “black”);
for(int i = 0; i<4; i++) (
cout << color(i) << endl;
)
)
Salida :
Aquí el color de la matriz es de tamaño fijo, es decir, el número de elementos es fijo y también el número de caracteres o tamaños del elemento también es fijo. El número máximo de elementos que se pueden definir es 4 y cada uno puede tener un máximo de 8 caracteres, no más que eso. Esta es la barrera principal en la matriz de caracteres 2D.
2. Matriz con la palabra clave String (solo posible en C ++)
Nombre de cadena (número máximo de elementos)
color de cadena (4) = ("azul", "rojo", "blanco", "negro")
Código:
int main() (
string color(4) = (“blue”, “red”, “white”, “black”);
for(int i = 0; i<4; i++) (
cout << color(i) << endl;
)
)
Salida :
Aquí solo se fija una dimensión cuando la declaramos como una matriz de cadenas. Solo el número de elementos es fijo. El tamaño del elemento puede variar. Pero al especificar la segunda dimensión podemos acceder o mostrar el carácter específico de una cadena respectiva.
3. Uso de vectores en C ++
Nombre del vector
color del vector
Código:
#include
#include
using namespace std;
int main()
(
vector color;
color.push_back("blue");
color.push_back("red");
color.push_back("white");
color.push_back("black");
for(int i = 0; i cout << color(i) << endl;
)
return 0;
)#include
#include
using namespace std;
int main()
(
vector color;
color.push_back("blue");
color.push_back("red");
color.push_back("white");
color.push_back("black");
for(int i = 0; i cout << color(i) << endl;
)
return 0;
)
Salida:
Aquí se asigna dinámicamente, la memoria se asigna desde el montón. El tamaño no es fijo. Puede aumentar o disminuir según el número de elementos. En el caso de asignar dinámicamente una matriz de cadenas con el comando "nuevo", debemos desasignar manualmente la memoria asignada. Pero en el caso del vector, esto no es necesario. La reasignación es posible en el vector, mientras que no es posible en la matriz asignada dinámicamente.
4. Pasando String Array en una función
String Array se puede pasar a una función similar a Cómo pasamos un Array.
Código:
#include
#include
using namespace std;
void display(string s(5))(
cout << s(2) ;
)
int main() (
string str(5) = ("Good", "Bad", "Positive", "Negative");
display(str);
)
Salida :
Aquí, estamos pasando la cadena de la matriz de cadenas como un parámetro a una función "pantalla" que imprime el tercer elemento de la matriz de cadenas ("Positivo").
5. Hacer frente a una matriz de cadenas a otra
Para copiar de una matriz de cadenas a otra, debemos copiar cada elemento individualmente, pero no se puede copiar toda la matriz de una sola vez.
Código:
int main() (
string str(4) = ("Good", "Bad", "Positive", "Negative");
string s(4);
// s = str; -à This line gives error as the whole array cannot be copied at a single go
// It can be copied as shown below
for( int i=0; i<4; i++) (
s(i) = str(i);
)
for(int i=0; i<4; i++) (
cout << "The element " << i+1 << " of copied array = " << s(i) << " is same as
the corresponding element in main array which is " << str(i) << endl;
)
)
Salida de error:
Salida:
Aquí, cuando intentamos copiar toda la matriz de cadenas principal (str) en otra (s) matriz (s) de cadenas, obtuvimos un error (como se muestra en la captura de pantalla 1), mientras que cuando lo copiamos elemento por elemento, str se copió a sy pudimos verificar esto al ver la segunda captura de pantalla de salida.
Conclusión
Por lo tanto, la cadena es un tipo de datos que es una matriz de caracteres y está presente solo en C ++. En C solíamos declarar como una matriz de caracteres. La matriz de cadenas es una matriz compuesta por muchas cadenas. Cuando se declara estática o dinámicamente es de tamaño fijo y cuando se declara en forma de vector, el tamaño no es fijo. Se puede acceder fácilmente a cada elemento y al carácter de un elemento específico mediante la indexación de la matriz de cadenas.
Artículos recomendados
Esta es una guía de String Array en C ++. Aquí discutimos cómo exceder el elemento en String Array en C ++, y la asignación de String Array en C ++. También puede consultar nuestros otros artículos relacionados para obtener más información.
- Matriz de cadenas en Python
- StringBuffer en Java
- Funciones de cadena de Python
- Matrices en C ++
- Introducción a la matriz de cadenas en C #
- Las 11 características y ventajas principales de C ++
- Top 8 comparaciones de String vs StringBuilder
- ¿Matriz de trabajo en Unix con sintaxis?