Open Source Your Knowledge, Become a Contributor
Technology knowledge has to be shared and made accessible for free. Join the movement.
Cadeia de caracteres (ou string)
-
Uma cadeia de caracteres (string em inglês) é uma sequência de caracteres ou símbolos definida pelo código ASCII.
-
Em linguagem C, uma cadeia de caracteres pode ser tratada como um "Vetor" do tipo char, cujo último elemento é o caractere nulo '\0', ou seja, o primeiro caractere do código ASCII (cujo valor é 0).
-
O caractere nulo é um caractere de controle (ou seja, não exibível) que indica o fim de uma cadeia de caracteres. Assim, uma cadeia composta de n elementos será, na realidade, um vetor de n + 1 elementos do tipo char.
-
Podemos, por exemplo, representar a string "Ola Mundo!" da seguinte maneira:
Declaração de Cadeias de caracteres
A declaração de uma string em C é semelhante a declaração de um vetor do tipo char. O número máximo de caracteres que comportará a cadeia será igual ao número de elementos do vetor menos um (reservado para o caractere do final da cadeia), por exemplo, se definirmos uma cadeia de caracteres de tamanho 30, ela conterá 29 caracteres + '\0'.
char Nome_da_tabela[Número_de_elementos]
Inicialização de cadeia de caracteres
-
A inicialização de uma string, ou seja, mover caracteres, pode ser feita de duas maneiras:
- Mover manualmente os dados (célula por célula), como em um vetor ou
- Utilizar funções de manipulação de cadeias fornecidas pela biblioteca padrão (String.h).
Exemplo de inicialização manual de cadeia de caracteres (para impressão de cadeia de caracteres com o comando printf devemos utilizar o caracter formatação "%s" :
Outra maneira (mais simples) de inicializarmos uma cadeia de caracteres é na sua declaração, como no exmplo abaixo:
ATENÇÃO
O comando scanf não lê o caracter Enter('\0'), portanto em variáveis do tipo char esse caracter é lido no comando scanf seguinte. Logo, em comandos de leitura de variáveis do tipo char, coloque a função getchar() ou fflush(stdin) (biblioteca stdlib.h) após o commando scanf, para solucionar o problema. A função fflush(stdin) limpa o buffer do teclado. Veja o exemplo abaixo:
#include<stdio.h>
#include<stdlib.h>
int main(){
char vet[10];
int i;
for (i=0; i<10;i++){
printf("\nentra:");
scanf("%c",&vet[i]);
fflush(stdin); //Usar essa função ou a função getchar()
}
for (i=0; i<10;i++){
printf("\nvet=:%c", vet[i]);
}
}