LUCAS EMANUEL GOMES SILVA
Comandos para manipulação de caracteres
Sorocaba
2021
INTRODUÇÃO
O objetivo deste trabalho é apresentar os principais comandos de manipulação de
variáveis do tipo “caractere” (1(um) caractere e strings (conjunto de caracteres)), para serem
usados na Linguagem C.
-Declaração de variáveis tipo caractere
Um caractere:
Para declarar uma a variável de tipo caractere com um caractere utiliza-se a
seguinte estrutura:
tipo identificador;
Na linguagem C o comando referente ao tipo de variável é ”char”
Exemplo
Conjunto de caracteres (strings)
Para declarar string em C é simples, pois é igual a declaração de um vetor de variáveis
do tipo char. Utiliza-se a sintaxe a seguir:
char nome da string[tamanho]
É importante ressalta, que geralmente os programadores iniciantes da linguagem C
acabam esquecendo o caractere delimitador “\0”, que também faz parte da string. Ou seja,
ele conta no número de caracteres. Então:
Para declarar uma string que vai armazenar “Lucas Emanuel”, por exemplo, temos q fazer
assim:
(13 para o nome + 1 para \0)
-Leitura de variáveis do tipo caractere
Com um caractere:
Para ler um caractere é muito simples. Basta usar a função (scanf(“%c”,nome da
variável);), o qual % simboliza a expressão de controle que nesse caso é acompanhada pelo
“c” que refere-se a variável do tipo caractere. Segue exemplo:
-Tela de exibição do exemplo anterior:
Com strings:
Já em strings há três funções principais para fazer a leitura. A primeira delas é a função
já conhecida “scanf()”, e sua característica é que essa função armazena somente até o
primeiro espaço. Então se o usuário digitar “Lucas Emanuel” o programa armazenará
somente “Lucas”. Veja os exemplos:
Note-se que agora a expressão de controle é “%s” por se tratar de uma string. Além
disso, na função de leitura a variável não acompanha “&”.
tela de execução com leitura em scanf():
Exemplo 1
Como já esperado o programa leu
até o primeiro espaço.
Exemplo 2
Nesse caso o espaço não foi dado
então o programa consegui ler o nome
completo.
A segunda forma de ler é pela função “fgets()”. Sua sintaxe é composta pelo nome da
variável, pelo operador “sizeof()” e do ponteiro “stdin”, dessa forma: fgets(nome da variável,
sizeof(nome da variável), stdin));. Esse comando, diferente do anterior, armazena tudo que
foi digitado, inclusive os espaços, até que a tecla ENTER seja pressionada. Além disso, para
imprimir a string nesse caso, usa-se o comando “puts()”.
Puts significa "put string" (colocar string), utilizado para "colocar" uma string na saída de
dados. putchar significa "put char" (colocar caractere), utilizado para "colocar" um caractere
na saída de dados.
São as funções mais simples do cabeçalho stdio.h. Ambas enviam (ou "imprimem") à saída
padrão os caracteres fornecidos a elas; putchar() manda apenas um caractere,
e puts() manda uma sequência de caracteres (ou string). Veja o exemplo utilizando todos
esses comandos:
Note, que junto com a função puts devemos usar literais de string (com aspas duplas), e
com putchar devemos usar literais de caractere (com aspas simples). Nesse caso o putchar
enviou apenas uma quebra de linha, mas poderia ter sido um caractere simples ou algum
especial, lembrando que sempre entre aspas simples.
Tela de exibição
Comparação
Com um caractere
Com caracteres simples a comparação é feita utilizando o operador relacional de
igual “==”. Lembrando que caractere único vem entre aspas simples (‘ ‘). Veja o exemplo:
Tela de exibição:
O programa leu, comparou e escreveu de acordo
com a condição
Com strings:
Comparar o tamanho de strings é uma função comum na programação da linguagem C,
pois ela permite verificar qual delas contém mais caracteres. Tal recurso é muito útil para
ordenar dados. Comparar strings requer uma função especial; não use != ou ==.
Para comparar strings, inicialmente, deve utilizar q biblioteca <string.h>, além da
<stdio.h>, juntamente das mais que o programa precisar.
O “strcmp()” compara duas strings caractere por caractere. Se as strings forem iguais, a
função retornará 0. Sua sintaxe é “strcmp(string1, string2)”.
Parâmetros strcmp ()
A função tem dois parâmetros:
str1 - uma string
str2 - uma string
Valor de retorno de strcmp ()
Valor de retorno Observações
0 Strings iguais
Diferente de 0 Strings
diferentes
Exemplo:
Tela de exibição
No programa, as strings str1 e str2 não são iguais. Portanto, o resultado é um número inteiro
diferente de zero. Já nas strings str1 e str3 são iguais. Portanto, o resultado é 0.
A função “strncmp()” é praticamente igual a anterior, com a única diferença que ela possibilita a
restringir a quantidade de caracteres que serão comparados, ou seja, ela compara n caracteres. Veja:
Tela de exibição
Nota-se que o programa declarou as duas strings iguais, pois ele leu os 5 primeiros caracteres como
definido na função strncmp(). Agora, utilizando o mesmo programa mas com a função strncmp()
programada para ler 6 caracteres, a impressão seria essa a seguir:
Pois abacaxi é maior que abacate.
Alguns outros comandos de manipulação de strings
Copiar uma string em outra:
A função strcpy(), declarada no arquivo string.h, recebe dois endereços de strings e
copia o conteúdo da segunda na primeira (incluindo o caractere nulo) para o destino.
Veja o exemplo:
Tela de exibição
Nota: Quando você usa strcpy(), o tamanho da string de destino deve ser grande o suficiente para
armazenar a string copiada. Caso contrário, isso pode resultar em um comportamento indefinido.
Calcular o comprimento da string
A “strlen()” função recebe uma string como argumento e retorna seu comprimento. O valor
retornado é do tipo size_t (o tipo inteiro sem sinal).
Veja o exemplo:
Tela de exibição
Observe que a função strlen() não conta o caractere nulo \0 ao calcular o comprimento.
Concatenar duas strings
Pode-se fazer a concatenação de dois strings, colocando um ao final do outro. A função para
se fazer isso é “strcat()”. Esta função irá concatenar a segunda string ao final da primeira
string.
O primeiro parâmetro da função portanto deve ser uma variável e possuir o espaço
suficiente para o resultado. A função não irá testar se existe espaço fazendo a
movimentação de caracteres do segundo parâmetro para o final do primeiro. O segundo
parâmetro pode ser uma variável ou uma constante delimitada por aspas.
Veja o exemplo:
Tela de exibição
Todas essas funções acima necessitam da biblioteca <string.h>
Referências bibliográficas
[Link]
[Link] Acesso em: 03. julho. 2021.
[Link] Acesso em: 03. julho. 2021.
[Link] Acesso em: 03. julho. 2021.
[Link] Acesso em: 03.
julho. 2021.
[Link]
Acesso em: 03. julho. 2021.
[Link] Acesso em: 03. julho. 2021.
Capítulo 7 – do livro Treinamento em linguagem C – módulo 1 (Mizrahi).