string array c implementation representation with examples
Una matriz de cadenas en C ++ es una matriz de cadenas. En este tutorial, profundizaremos en los detalles de la representación e implementación de matrices de cadenas en C ++:
Hemos visto matrices en C ++ en nuestros tutoriales anteriores. Las matrices nos permiten declarar elementos de datos de varios tipos. Considerando que todos los arreglos de tipos de datos numéricos son idénticos en operaciones e implementación, y los arreglos con tipo de datos de cadena son diferentes.
preguntas y respuestas de la entrevista qtp para experimentados
En C ++, la cadena se puede representar como una matriz de caracteres o utilizando una clase de cadena compatible con C ++. Cada elemento de cadena o matriz termina con un carácter nulo. La representación de cadenas mediante una matriz de caracteres se toma directamente del lenguaje 'C', ya que no hay ningún tipo de cadena en C.
=> Haga clic aquí para obtener el curso gratuito de C ++.
Lo que vas a aprender:
Implementación de matrices de cadenas
En C ++, las cadenas se pueden representar de tres formas.
- Uso de matrices de caracteres bidimensionales: Esta representación utiliza matrices bidimensionales donde cada elemento es la intersección de un número de fila y columna y representa una cadena
- Usando una palabra clave de cadena: También podemos usar la palabra clave string de C ++ para declarar y definir matrices de cadenas.
- Usando vectores STL: Podemos usar vectores STL en los que cada elemento de un vector es una cadena.
Ahora, analicemos cada uno de los métodos anteriores y también veamos los ejemplos de programación para cada representación.
Uso de matrices de caracteres bidimensionales
Las matrices de cadenas o una matriz de cadenas se pueden representar mediante una forma especial de matrices bidimensionales. En esta representación, usamos una matriz bidimensional de caracteres de tipo para representar una cadena.
La primera dimensión especifica el número de elementos, es decir, cadenas en esa matriz y la segunda dimensión especifica la longitud máxima de cada elemento en la matriz.
Entonces podemos usar una representación general como se muestra a continuación.
|_+_|Por ejemplo,considere la siguiente declaración:
|_+_|La declaración anterior declara una matriz de cadenas denominada 'string_array' que tiene 10 elementos y la longitud de cada elemento no es más de 20.
Podemos declarar e inicializar una matriz de animales usando cadenas de la siguiente manera:
|_+_|Veamos un ejemplo de programación utilizando el concepto de matrices de caracteres bidimensionales para comprender mejor el concepto.
|_+_|Producción:
En el programa anterior, hemos declarado una matriz de cadenas llamada strArray de tamaño 5 con la longitud máxima de cada elemento como 10. En el programa, iniciamos un bucle for para mostrar cada elemento de la matriz. Tenga en cuenta que solo necesitamos acceder a la matriz usando la primera dimensión para mostrar el elemento.
El fácil acceso a los elementos es una de las principales ventajas de las matrices 2-D. De hecho, son simples de programar.
El principal inconveniente de este tipo de representación es que tanto las dimensiones de la matriz, es decir, el número de elementos como la longitud máxima del elemento, son fijas y no se pueden cambiar como queremos.
En segundo lugar, especificamos la longitud máxima de cada elemento como la segunda dimensión durante la declaración de la matriz. Si la longitud de la cadena se especifica como 100, y tenemos todos los elementos que son de menor longitud, entonces la memoria se desperdicia.
Usando una palabra clave de cadena
En esto, usamos la palabra clave 'cadena' en C ++ para declarar una matriz de cadenas. A diferencia de las matrices de caracteres, aquí solo tenemos una matriz 1D. La dimensión única especifica el número de cadenas de la matriz.
La sintaxis general para la declaración de una matriz de cadenas utilizando la palabra clave de cadena se proporciona a continuación:
|_+_|Tenga en cuenta que aquí no especificamos la longitud máxima de la cadena. Esto significa que no hay limitación en la longitud de los elementos de la matriz.
Como ejemplo, podemos declarar una matriz de nombres de colores de la siguiente manera.
|_+_|Podemos inicializar aún más esta matriz como se muestra a continuación:
|_+_|A continuación se muestra un programa en C ++ para comprender la palabra clave de cadena y su uso en una matriz de cadenas.
|_+_|Producción:
Hemos modificado nuestro programa de matriz de caracteres anterior y hemos demostrado el uso de palabras clave de cadena. La salida del programa es la misma, pero la forma en que se logra es diferente, ya que definimos una matriz de cadenas utilizando la palabra clave string.
Tenga en cuenta que la matriz de cadenas que utiliza la palabra clave string tiene la ventaja de que no tenemos limitaciones en la longitud de las cadenas de la matriz. Dado que no existe ninguna limitación, tampoco desperdiciamos espacio en la memoria.
En el lado negativo, esta matriz tiene un tamaño fijo. Necesitamos declarar el tamaño de la matriz de antemano.
Uso de vectores STL
También podemos usar vectores STL para declarar y definir matrices dinámicas. Por lo tanto, para definir una matriz de cadenas, podemos tener un vector STL de tipo cadena.
Esta declaración de una matriz de cadenas usando vector se muestra a continuación:
|_+_|En referencia a la declaración anterior, podemos declarar un vector 'sujetos' de la siguiente manera:
|_+_|Tenga en cuenta que podemos asignar elementos al vector mediante el método 'push_back' o cualquier otro método de vector STL.
A continuación se muestra un ejemplo de programación que utiliza C ++ para demostrar el uso del vector STL para representar una matriz de cadenas.
|_+_|Producción:
implementación del programa hash en c ++
En el programa anterior, tenemos un vector STL myNumbers de tipo cadena. A continuación, agregamos elementos a este vector utilizando el método push_back y luego mostramos cada uno de los elementos del vector.
Si vemos el funcionamiento completo del vector STL y la matriz de cadenas, vemos que en este caso, no tenemos un límite en el número de elementos en la matriz o la longitud máxima de cada elemento. Vemos que la matriz de cadenas que utilizan vectores es completamente dinámica y se puede reducir o aumentar dinámicamente.
¿Cómo seleccionar la representación a utilizar?
Ahora que hemos visto las tres representaciones de matrices de cadenas, podemos concluir que de las tres representaciones, la representación vectorial es la mejor ya que es de naturaleza dinámica.
Depende del propósito y los requisitos de la matriz de cadenas. Cuando tenemos el requisito de que necesitamos una matriz de cadenas de tamaño fijo y sabemos los datos exactos que entrarán en una matriz de cadenas, entonces podemos optar por una matriz de caracteres o una representación de cadenas.
Cuando queremos que la matriz de cadenas crezca o se reduzca dinámicamente, podemos recurrir a la representación vectorial, ya que nos ayudará a desarrollar programas cambiando dinámicamente la matriz.
Conclusión
Las matrices de cadenas son matrices especiales que tienen datos como cadenas. Esto significa que cada elemento de la matriz es una cadena terminada por un carácter nulo.
Hemos discutido tres representaciones de una matriz de cadenas en detalle junto con sus pros y contras. Según nuestros requisitos; podemos usar cualquier representación de la matriz de cadenas que se adapte a nuestra implementación.
En nuestros tutoriales posteriores, continuaremos explorando en detalle las cadenas de C ++ y las funciones de C ++.
=> Lea la serie de formación Easy C ++.
Lectura recomendada
- Tutorial de longitud de matriz de Java con ejemplos de código
- Tutorial Java String con String Buffer y String Builder
- Tutorial de cadenas de C #: métodos de cadena con ejemplos de código
- Funciones de cadena de Python
- Matrices de C ++ con ejemplos
- Cadenas en C ++ con ejemplos
- C # Random Number y C # Random String Generator con ejemplos de código
- Ordenar montón en C ++ con ejemplos