¿Qué es una matriz de cuerdas?

La cadena es una colección de caracteres, una matriz de una cadena es una matriz de matrices de caracteres. Cada cadena termina con un carácter nulo. Una matriz de una cadena es una de las aplicaciones más comunes de las matrices bidimensionales.

scanf () es la función de entrada con el especificador de formato% s para leer una cadena como entrada desde el terminal. Pero el inconveniente es que termina tan pronto como se encuentra con el espacio. Para evitar esto, la función gets () puede leer cualquier cantidad de cadenas, incluidos los espacios en blanco.

Sting es una matriz de caracteres terminados con el carácter especial conocido como el carácter nulo ("\ 0").

Sintaxis

datatype name_of_the_array(size_of_elements_in_array);
char str_name(size);

Ejemplo

datatype name_of_the_array ( ) = ( Elements of array );
char str_name(8) = “Strings”;

Str_name es el nombre de la cadena y el tamaño define la longitud de la cadena (número de caracteres).

Una cadena se puede definir como una matriz unidimensional de caracteres, por lo que una matriz de cadenas es una matriz bidimensional de caracteres.

Sintaxis

char str_name(size)(max);

Sintaxis

char str_arr(2)(6) = ( ('g', 'o', 'u', 'r', 'i', '\0'), ('r', ' a', ' m', '\0'));

Alternativamente, incluso podemos declararlo como

Sintaxis

char str_arr(2)(6) =(“gouri”, ”ram”);

De la sintaxis dada hay dos subíndices, el primero es para cuántas cadenas declarar y el segundo es definir la longitud máxima de caracteres que cada cadena puede almacenar, incluido el carácter nulo. El concepto C ya explica que cada carácter toma 1 byte de datos mientras asigna memoria, el ejemplo anterior de sintaxis ocupa 2 * 6 = 12 bytes de memoria.

Ejemplo

char str_name(8) = ('s', 't', 'r', 'i', 'n', 'g', 's', '\0');
By the rule of initialization of array, the above declaration can be written as
char str_name() = “Strings”;

0 1 2 3 4 5 6 7 Índice

Variables 2000 2001 2002 2003 2004 2005 2006 2007 Dirección

Esta es una representación de cómo se asignan las cadenas en la memoria para la cadena declarada anteriormente en C.

Cada carácter en la cadena tiene un índice y una dirección asignados a cada carácter en la cadena. En la representación anterior, el compilador de C coloca automáticamente el carácter nulo ("\ 0") al final de cada cadena cuando inicializa la matriz declarada anteriormente. Por lo general, las cadenas se declaran utilizando comillas dobles según las reglas de inicialización de cadenas y cuando el compilador encuentra comillas dobles, agrega automáticamente un carácter nulo al final de la cadena.

Según el ejemplo anterior, sabemos que el nombre de la matriz apunta al índice 0 y la dirección 2000, ya que sabemos que la indexación de una matriz comienza desde 0. Por lo tanto,

str_name + 0 points to the character “s”
str_name + 1 points to the character “t”

Como el ejemplo anterior es para una matriz unidimensional, el puntero apunta a cada carácter de la cadena.

Ejemplos de cadena de matriz en C

#include
int main()
(
char name(10);
printf("Enter the name: ");
fgets(name, sizeof(name), stdin);
printf("Name is : ");
puts(name);
return 0;
)

Ahora para matrices bidimensionales, tenemos la siguiente sintaxis y asignación de memoria. Para esto, podemos tomarlo como representación de fila y columna (formato de tabla).

char str_name(size)(max);

En esta representación de tabla, cada fila (primer subíndice) define como el número de cadenas que se almacenarán y la columna (segundo subíndice) define la longitud máxima de las cadenas.

char str_arr(2)(6) = ( ('g', 'o', 'u', 'r', 'i', '\0'), ('r', ' a', ' m', '\0'));

Alternativamente, incluso podemos declararlo como

Sintaxis:

char str_arr(2)(8) =(“gouri”, ”ram”);

Índice

Filas

0 0 1 2 3 4 4 5 5 6 6 7 7
0 0soloturyo\ 0\ 0\ 0
1runmetro\ 0\ 0\ 0\ 0\ 0

Según el ejemplo anterior, sabemos que el nombre de la matriz apunta a la cadena 0. Por lo tanto,

str_name + 0 puntos a la 0ª cadena "gouri"

str_name + 1 puntos a la 1ra cadena "ram"

Como el ejemplo anterior es para matrices bidimensionales, el puntero apunta a cada cadena de la matriz.

#include
int main()
(
int i;
char name(2)(8) = (
“gouri”,
“ram”
);
for (i = 0; i < 2; i++)
(
printf(“String = %s \n”, name + i, name + i);
)
return 0;
)

Salida:

Funciones de cuerdas

strcpy (s1, s2); esta función copia la cadena s2 en sting s1.
char s1(10) = “gouri”;
char s2 (10) = “ram”;
char s3 (10) ;
strcpy(s3, s2);
result => strcpy(s3, s2) : ram

strcat (s1, s2); esta función concatena las cadenas s1 y s2, la cadena s2 se agrega al final de la cadena s1.
char s1(10) = “gouri”;
char s2 (10) = “ram”;
strcat(s1, s2);
result => strcat(s1, s2) : gouriram

strlen (s1); Esta función devuelve la longitud de la cadena s1.
char s1(10) = “gouri”;
strlen(s1);
result => 5

strcmp (s1, s2); Esta función compara ambas cadenas s1 y s2.
style="list-style-type: none;">
style="list-style-type: none;">

strchr (s1, ch); estas funciones encuentran la primera aparición del carácter dado ch en la cadena s1 y el puntero apunta a este carácter en la cadena.

strstr (s1, s2); esto encuentra la primera aparición de la cadena s2 en la cadena s1 y el puntero apunta a la cadena s2 en la cadena s1.

Con algunas operaciones no válidas son str_arr (0) = "gouri"; en esta operación, el puntero de la cadena se asigna al puntero constante que no es válido y no es posible, porque el nombre de la matriz es un puntero constante.

Para evitar esto, podemos asignar str_arr usando strcpy (str_arr (0), "gouri").

Conclusión

Una matriz en sí misma se define como una lista de cadenas. De la introducción anterior, podemos concluir que la declaración y la inicialización de las cadenas son diferentes, como vimos para cada cadena que el compilador agrega un carácter nulo cuando lee la cadena como entrada. Hay muchas funciones de manejo de cadenas, algunas funciones con ejemplos se explican anteriormente. Por lo tanto, las matrices de la cadena son tan fáciles como las matrices.

Artículos recomendados

Esta es una guía de una matriz de cadenas en C. Aquí discutimos los conceptos básicos de las cadenas de matriz, ejemplo de cadena de matriz en C y funciones de las cadenas. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. Conjunto de cadenas en C #
  2. Matriz multidimensional en C
  3. Arreglos en programación en C
  4. Matrices 2D en C #
  5. ¿Cómo funciona la matriz en Unix con sintaxis?