Como ler uma string em C

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.