Open Source Your Knowledge, Become a Contributor

Technology knowledge has to be shared and made accessible for free. Join the movement.

Create Content

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: programa


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]);

}

}

Open Source Your Knowledge: become a Contributor and help others learn. Create New Content