Strings na linguagem C

Strings na linguagem C

As cordas são frequentemente usadas na linguagem C. Através deles, um programa exibe as mensagens ou resultados para o usuário, insere as informações no sistema, gera ou consulta as informações em bancos de dados, compara ou pesquisam palavras em um texto, etc. Eles também são usados ​​para as funções para especificar os caminhos de arquivo, selecionar os diretórios de trabalho, etc.

Neste artigo da dica do Linux, você aprenderá tudo sobre strings. Vamos explicar do zero o que é uma corda, que elementos ele consiste e como é criado.

Também veremos uma seção especial que explica o que são personagens especiais e qual o papel dos personagens de controle em uma string.

Após a explicação teórica, veremos os vários exemplos práticos com trechos de código e imagens em que ensinamos como criar as cordas e usar as funções básicas que o idioma C fornece para seu gerenciamento.

Strings na linguagem C

Uma corda é um pedaço de texto que consiste em caracteres alfanuméricos, símbolos e caracteres de controle. O compilador processa qualquer coisa que seja fechada em citações como uma string e automaticamente coloca um caractere nulo após o último personagem para indicar o fim.

Em seguida, vejamos a cadeia mais conhecida na programação:

"Olá Mundo"

O idioma C armazena as cordas em matrizes de elementos de char de tipo ou char não assinado. O tipo de dados dos elementos deve ser especificado na declaração da matriz, como mostrado no seguinte:

char string_1 [20];
Char string_2 não assinado [20];

Nesse caso, a matriz string_1 possui 20 elementos do tipo char e a matriz string_2 tem 20 elementos do tipo não assinado char.

O tipo de dados dos elementos da matriz determina o conjunto de caracteres que a string aceita. Um tipo de dados de char aceita apenas um caractere ASCII de 7 bits. O bit restante é usado como uma verificação de sinal e paridade; portanto, apenas os caracteres entre 0h00 e 0h80 da tabela ASCII podem ser representados neste tipo de dados.

Os caracteres do tipo de char não assinado não usam um bit de sinal, então seus 8 bits são usados ​​para representar os caracteres entre 0h00 e 0HFF do código ASCII estendido.

Além de caracteres e símbolos alfanuméricos, uma string também pode conter os caracteres de controle.

Escapar e controlar caracteres na linguagem C

Os caracteres de controle têm a função de executar ações específicas na string que os contém. Por exemplo, um caractere "\ n" antes do início de uma string significa que ela deve ser escrita para uma nova linha.

#incluir
void main ()
printf ("\ Nhello World");

O personagem Escape no final da string indica que a string deve ser escrita e o cursor é movido para a próxima linha.

#incluir
void main ()
printf ("Hello World \ n");

Todas as seqüências de fuga consistem em um personagem alfanumérico que é precedido por uma barra de barra.

Em seguida, vemos uma tabela dos caracteres de fuga mais usados ​​no idioma C:

\ n Nova linha
\ r Retorno do carro
\a Alerta em bipe
\ t Tabulação
\ v Tabulação vertical
\ b Backspace
\ f FORMULAÇÃO DE FORMA

Além desses caracteres de fuga, existem sequências que indicam ao compilador que ele deve incluir certos símbolos na string. Por exemplo, se quisermos incluir um personagem de dupla citação no texto, o compilador o interpretaria como um terminador da string e não como outro personagem. Por esse motivo, alguns símbolos devem ser precedidos por uma barra de barriga para que o compilador possa inserir. No exemplo a seguir, vemos o que são:

\ ” Insira citações duplas
\ ' Insira citações únicas
\\ Insira barra de barriga
\? Insira o ponto de interrogação

:

Como criar uma string no idioma C

Uma das maneiras de declarar uma string é criar uma matriz de caracteres do char de tipo ou char não assinado de um determinado tamanho, como segue:

Char Str [50];
str = "Hello World";

Dessa forma, o compilador trata os dados que são armazenados na matriz como uma única string atribuindo um caractere nulo no final.

Como criar uma string constante na linguagem C

Para criar uma string constante, você deve declarar uma matriz de caracteres de char de tipo ou char não assinado sem especificar seu tamanho. Em seguida, atribua a string a ela, conforme mostrado no seguinte:

char str [] = "Hello World";

O compilador coloca automaticamente um caractere nulo no final da string para indicar seu fim. Com esse tipo de string, não é possível alterar o conteúdo.

Como criar um ponteiro para a string na linguagem C

Outra maneira de armazenar uma string é declarar um ponteiro para a matriz que a armazena. Este método aloca dinamicamente o tamanho da matriz de caracteres. Aqui está a maneira correta de declarar um ponteiro de string:

char *s_ptr;
s_ptr = "Hello World";

O método de ponteiro é o mais usado pelas funções de idioma C para se referir a uma string em seus argumentos de entrada e saída.

Funções para lidar com as cordas

Ao programar, é importante memorizar as funções básicas para lidar com as cordas porque as usamos repetidamente. Se você os dominar, seu trabalho será muito mais rápido.

Todas as funções para lidar com as cordas são definidas na “string.H ”cabeçalho. Para usá -los, você deve incluir este arquivo no seu código da seguinte forma:

#incluir

Na seção a seguir, mostraremos brevemente como usar as funções básicas de manuseio de strings no idioma C.

Como exibir uma string no idioma C

A maneira mais comum de exibir uma string na tela é usar as funções printf () ou puts (), ambas definidas no “stdio.H ”cabeçalho. Essas funções aceitam uma string ou um ponteiro para uma string como um argumento de entrada.

Agora, vamos ver como uma string pode ser exibida na tela usando a função printf ():

#incluir
void main ()
printf ("Hello World 1 \ n");
char str [15] = "\ nhello World 2 \ n";
printf ("%s", str);

Se você usar a função printf () e passar um ponteiro de string como no segundo caso, você deve especificar em que formato ele deve ser exibido. Como é uma string neste caso, este formato é especificado com "%s" como o primeiro argumento de entrada.

Na figura a seguir, você pode ver a compilação e a execução deste código:

Como copiar uma string no idioma C

Existem várias maneiras de copiar uma string no idioma C. O método mais usado é a função strCpy () que é definida na “string.H ”cabeçalho. No exemplo a seguir, examinaremos a sintaxe desta função:

strCpy (S1, S2);

A função strcpy () copia a sequência "S2" para a sequência "S1" e insere um caractere nulo no final. A sequência "S2" pode ser especificada explícita ou implicitamente.

Exemplo:

O código a seguir copia a string "S2" explicitamente especificada para a sequência "S1" e a exibe no console de comando:

#incluir
#incluir
void main ()

char s1 [20] = "";
strcpy (s1, "\ n \ nhello World \ n \ n");
printf ("%s", S1);

A imagem a seguir mostra a compilação e execução deste código. Nesse caso, o strcpy () copia a string de "s2" para "s1" e depois a imprime na tela usando a função printf ():

Como concatenar duas cordas na linguagem C

A função que o idioma C fornece para concatenar duas strings é o strcat (). Vejamos a sintaxe desta função a seguir:

strcat (S1, S2);

Esta função concatena a string "S2" na string "S1". Como todas as funções de processamento de strings, o strcat () coloca um caractere nulo no final da string concatenada. "S1" e "S2" podem ser especificados explicitamente ou implicitamente.

Exemplo:

#incluir
#incluir
void main ()

char s1 [20] = "\ n \ nhello";
strcat (S1, "World \ n \ n");
printf ("%s", S1);

A imagem a seguir mostra a compilação e execução deste código. Nesse caso, o strcat () concatena a string "s2" para "s1" e depois a imprime na tela usando a função printf ():

Como comparar duas cordas na linguagem C

A função que a linguagem C fornece para comparar as strings é STRCMP (). Vejamos a sintaxe desta função a seguir:

int strcmp (s1, s2);

A função STRCMP () compara as strings "S1" e "S2". Se forem iguais, retorna um resultado que é igual a 0. Se eles não forem iguais, retornará um resultado que não é igual a 0.


Exemplo:

#incluir
#incluir
void main ()

char s1 [50] = "igual";
char s2 [50] = "igual";
char s3 [50] = "não é igual";
//caso 1
if (strcmp (s1, s2) == 0)
printf ("\ n \ ns1 e s2 são iguais \ n \ n");
outro
printf ("\ n \ ns1 e s2 não são iguais \ n \ n");
// Caso 2
if (strcmp (s1, s3) == 0)
printf ("\ n \ ns1 e s3 são iguais \ n \ n");
outro
printf ("\ n \ ns1 e s3 não são iguais \ n \ n");

Vemos a compilação e a execução deste código na figura a seguir. No caso 1, "S1" e "S2" são os mesmos, então strcmp () retorna 0. No caso 2, "S1" e "S3" não são iguais, então o programa entra no "else" da declaração "se".

Como cortar uma corda em fragmentos

A função strsep () fragmenta a string que é apontada por stringp em pedaços, começando com um delimitador especificado em seu argumento de entrada "delim". Vamos agora olhar para a sintaxe desta função:

char *strsep (char ** restringe stringp, const char *restringe delim);

Quando o strsep () encontra um delimitador, ele o substitui por um caractere nulo que marca o fim do novo fragmento e define o ponteiro para secar a próxima posição. Esta função retorna o ponteiro para o novo fragmento em cada chamada, ou um ponteiro nulo se não encontrar mais delimitadores.

Exemplo:

Neste exemplo, fragmentamos o “Hoje é um ótimo dia para programar” string e use um espaço como delimitador para que a string seja fragmentada por palavra, que produzimos para o console de comando usando a função printf (). A chamada para a função strsep () é repetida em um tempo até que não encontre mais delimitador e retorna um ponteiro nulo.

#incluir
#incluir
void main ()

char s_in [50] = "Hoje é um ótimo dia para programação";
char* in_ptr = s_in;
char del [4] = "";
char* o_ptr;
while (o_ptr != Null)
o_ptr = strsep (& in_ptr, del);
printf ("%s \ n \ n", o_ptr);

A imagem a seguir mostra a compilação e execução deste código. Como podemos ver, o strsep () fragmenta a palavra string by word e a função printf () imprime cada palavra para uma nova linha do console de comando:

Conclusão

Neste artigo do Linux, explicamos o que uma string consiste na linguagem C.

Aprendemos de que elementos eles são feitos, que tipo de dados eles usam, como são codificados e quais personagens cada tipo suporta.

Também explicamos as diferentes maneiras de declarar as matrizes ou dicas para armazenar as cordas, bem como as instruções para alocá -las.

Para ajudá -lo a controlar as cordas nesse idioma, usamos os exemplos práticos e os trechos de código para mostrar o que são strings e como usar algumas das funções básicas de processamento de string.