O que é uma matriz de string?

A string é uma coleção de caracteres, uma matriz de uma string é uma matriz de matrizes de caracteres. Cada sequência é finalizada com um caractere nulo. Uma matriz de uma string é uma das aplicações mais comuns de matrizes bidimensionais.

scanf () é a função de entrada com o especificador de formato% s para ler uma string como entrada do terminal. Mas a desvantagem é que termina assim que encontra o espaço. Para evitar isso, a função gets () pode ler qualquer número de strings, incluindo espaços em branco.

Sting é uma matriz de caracteres terminados com o caractere especial conhecido como caractere nulo ("\ 0").

Sintaxe

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

Exemplo

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

Str_name é o nome da string e o tamanho define o comprimento da string (número de caracteres).

Uma String pode ser definida como um array unidimensional de caracteres, portanto, um array de strings é um array bidimensional de caracteres.

Sintaxe

char str_name(size)(max);

Sintaxe

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

Como alternativa, podemos até declará-lo como

Sintaxe

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

A partir da sintaxe fornecida, existem dois subscritos, o primeiro é o de quantas cadeias declarar e o segundo é a definição do comprimento máximo de caracteres que cada cadeia pode armazenar, incluindo o caractere nulo. O conceito C já explica que cada caractere usa 1 byte de dados ao alocar memória, o exemplo de sintaxe acima ocupa 2 * 6 = 12 bytes de memória.

Exemplo

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

Variáveis ​​2000 2001 2002 2003 2004 2005 2006 2007 Endereço

Esta é uma representação de como as strings são alocadas na memória para a string acima declarada em C.

Cada caractere na sequência está tendo um índice e endereço alocados para cada caractere na sequência. Na representação acima, o caractere nulo ("\ 0") é automaticamente colocado pelo compilador C no final de cada sequência quando inicializa a matriz declarada acima. Geralmente, as strings são declaradas usando aspas duplas, de acordo com as regras de inicialização das strings, e quando o compilador encontra aspas duplas, ele adiciona automaticamente o caractere nulo no final da string.

No exemplo acima, como sabemos que o nome da matriz aponta para o 0º índice e o endereço 2000, como já sabemos, a indexação de uma matriz começa em 0. Portanto,

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

Como o exemplo acima é para uma matriz unidimensional, o ponteiro aponta para cada caractere da sequência.

Exemplos de string de matriz em C

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

Agora, para matrizes bidimensionais, temos a seguinte sintaxe e alocação de memória. Para isso, podemos tomá-lo como representação de linha e coluna (formato de tabela).

char str_name(size)(max);

Nesta representação da tabela, cada linha (primeiro subscrito) define como o número de cadeias a serem armazenadas e a coluna (segundo subscrito) define o comprimento máximo das cadeias.

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

Como alternativa, podemos até declará-lo como

Sintaxe:

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

Índice

Linhas

0 0 1 2 3 4 5 6 7
0 0govocêrEu\ 0\ 0\ 0
1rumam\ 0\ 0\ 0\ 0\ 0

A partir do exemplo acima, como sabemos que o nome da matriz aponta para a 0a string. Portanto,

str_name + 0 pontos à 0ª string "gouri"

str_name + 1 pontos para a primeira string "ram"

Como o exemplo acima é para matrizes bidimensionais, o ponteiro aponta para cada sequência da 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;
)

Resultado:

Funções de strings

strcpy (s1, s2); esta função copia a string s2 para a picada s1.
char s1(10) = “gouri”;
char s2 (10) = “ram”;
char s3 (10) ;
strcpy(s3, s2);
result => strcpy(s3, s2) : ram

strcat (s1, s2); essa função concatena as strings s1 e s2, a string s2 é anexada no final da string s1.
char s1(10) = “gouri”;
char s2 (10) = “ram”;
strcat(s1, s2);
result => strcat(s1, s2) : gouriram

strlen (s1); essa função retorna o comprimento da string s1.
char s1(10) = “gouri”;
strlen(s1);
result => 5

strcmp (s1, s2); Essa função compara as seqüências de caracteres s1 e s2.
style="list-style-type: none;">
style="list-style-type: none;">

strchr (s1, ch); essas funções localizam a primeira ocorrência do caractere ch especificado na string s1 e o ponteiro aponta para esse caractere na string.

strstr (s1, s2); isso localiza a primeira ocorrência da sequência s2 na sequência s1 e o ponteiro aponta para a sequência s2 na sequência s1.

Com algumas operações inválidas, são str_arr (0) = "gouri"; nesta operação, o ponteiro da string é atribuído ao ponteiro constante que é inválido e não é possível, porque o nome da matriz é um ponteiro constante.

Para evitar isso, podemos atribuir str_arr usando strcpy (str_arr (0), "gouri").

Conclusão

Uma matriz em si define como uma lista de cadeias. A partir da introdução acima, podemos concluir que a declaração e a inicialização das strings são diferentes, como vimos em todas as strings que o compilador acrescenta caractere nulo quando lê a string como entrada. Existem muitas funções de manipulação de strings, algumas funções com exemplos são explicadas acima. Portanto, matrizes da string são tão fáceis quanto matrizes.

Artigos recomendados

Este é um guia para uma matriz de seqüências de caracteres em C. Aqui discutimos o básico das seqüências de caracteres de matriz, exemplo de sequência de matrizes em C e funções de seqüências de caracteres. Você também pode consultar nossos outros artigos sugeridos para saber mais:

  1. Matriz de seqüência de caracteres em c #
  2. Matriz multidimensional em C
  3. Matrizes em programação C
  4. Matrizes 2D em C #
  5. Como o Array funciona no Unix com sintaxe?