Como ler uma string em C. A linguagem de programação C não fornece um tipo de dados de string real. Em C, uma string é emulada por uma matriz de caracteres que termina em NULL. Essa matriz pode ser declarada estaticamente ou como um ponteiro. C padrão fornece muitas funções para manipular matrizes de caracteres ou cadeias de caracteres C. Este artigo enfoca as funções de leitura do fluxo de entrada e de arquivos. Siga estas dicas para aprender a ler uma string em C.
Passo 1
Entenda o básico. Uma string C é uma matriz de tipo de gráfico. Como acontece com todas as matrizes C, o primeiro elemento é indexado em 0 e o último em "comprimento da string menos 1." Normalmente, o compilador insere NULL no último local, para que a string possa conter "comprimento da string menos 1" elementos Nulo é equivalente a 0x00 na forma inteira e '\ 0' na forma char. Os elementos são acessados pelo operador "[]". A etapa 2 ilustra esses conceitos.
Vídeo do dia
Passo 2
Adicione a "diretiva de inclusão" abaixo a qualquer arquivo de origem antes de usar as funções deste tutorial:
#include
etapa 3
Declare uma string C. O código a seguir mostra uma declaração usando os métodos estático e ponteiro:
// declaração estática char str [50] = {0}; // forma abreviada de inicializar todos os elementos para 0 // str [49] é NULL // str tem capacidade para 48 caracteres // declaração por ponteiro char pStr = NULL; // sem alocação de memória pStr = (char) malloc (50); // isso é feito por "malloc ()"
Passo 4
Leia os dados em uma string C usando "scanf ()", que lê uma série de strings separadas por espaço do padrão entrada e os coloca nos endereços pertencentes às variáveis de referência apropriadas, de acordo com um "formato corda":
int n; printf ("Digite seu nome e idade:"); scanf ("% s% d", str, & n); // printf ("Seu nome é% se você é% d velho \ n", str, n);
Etapa 5
Coloque os dados em uma string C usando a função mais simples "gets ()", que lê os dados da entrada padrão apenas em uma string:
printf ("Digite seu sobrenome:"); obtém (str); printf ("Seu nome é% s \ n", str);
Etapa 6
Leia os dados do arquivo em uma string C usando "fscanf ()"; esta função é análoga a "scanf ()":
FILE * pFile; pFile = fopen ("meuArquivo.txt", "r"); // assume que o arquivo existe e tem dados if (NULL! = pFile) {fscanf (pFile, "% s", str); printf ("A primeira palavra no arquivo é% s \ n", str); fclose (pFile); }
Etapa 7
Repita a Etapa 5 usando "fgets ()", que funciona da mesma forma que "gets ()":
FILE * pFile; pFile = fopen ("meuArquivo.txt", "r"); if (NULL! = pFile) {fgets (pFile, str); printf ("A primeira palavra no arquivo é% s \ n", str); fclose (pFile); }
Coisas que você precisa
IDE C / C ++ ou compilador C
Livro sobre C, como "The C Programming Language", de Brian W. Kernighan
Dica
Para saber mais sobre as funções mencionadas, visite o site do C Plus Plus.
Aviso
Não tente compilar este código. Destina-se apenas a demonstrar as funções. Não é um programa coerente e apresentará erros quando compilado.