Como trabalhar com matrizes de caracteres vazias em c programação

Assim como você pode declarar um vazio, ou não inicializado, flutuador ou matriz int, você pode criar uma matriz de char vazio com C programação. Você deve ser preciso, no entanto: A matriz&rsquo-s tamanho deve ser 1 maior que o comprimento máximo da cadeia para explicar esse caráter NULL. Além disso, você tem que garantir que qualquer entrada que preenche a matriz doesn&rsquo-t exceder a matriz&rsquo-s de tamanho.

Em Preenchendo uma Caracteres Matriz, a matriz primeironome carvão animal na linha 5 pode conter 15 caracteres, mais um para o no final da cadeia. Essa limitação de 15 caracteres é uma suposição feita pela programmer- mais primeiros nomes são menos de 15 caracteres.

Preenchendo uma CARACTERES ARRAY

#include int main () {char nome próprio [16] -printf ("Qual é o seu nome? ") -fgets (nome, 16, stdin) -printf ("Prazer em conhecê-lo,% sn", Nome) -Retornar (0) -}

Uma função fgets () na linha 8 lê dados para a seqüência firstname. O tamanho máximo de entrada é ajustado para 16 caracteres, que já representa o caractere nulo porque fgets () é inteligente assim. O texto é lido de stdin, ou entrada padrão.

Video: Programação C - Aula 09 - Vetor (Matriz unidimensional)

Exercício 1: Criar um novo projeto usando o código-fonte de encher um Caracteres Array. Construir e executar, usando seu primeiro nome como entrada.

Tente executar o programa novamente, mas encher o buffer: Digite mais de 15 caracteres. Você&rsquo-verá que apenas os primeiros 15 caracteres são armazenados na matriz. Mesmo a tecla Enter imprensa isn&rsquo-t armazenado, o qual seria de outro modo quando a entrada é menos de 15 caracteres.

exercício 2: Modificar seu código-fonte do Exercício 4 para que o programa pede também o seu último nome, armazenando os dados em outro array. O programa deve então cumprimentá-lo usando ambos os seus nomes e sobrenomes.



Sim, a Introduzir imprensa chave é armazenada como parte de seu nome, que é como a entrada é lido pela função () fgets. Se o seu primeiro nome é Dan, a matriz se parece com isso:

primeironome [0] == `D`primeironome [1] ==` a`firstname [2] == `n`firstname [3] ==` n`firstname [4] == ``

que&rsquo-s por causa de entrada em C é orientado de fluxo, e participar é parte do fluxo de entrada, tanto quanto os fgets () é a função em questão. Você pode corrigir esse problema, obedecendo Exercício 6.

exercício 3: Reescrever seu código-fonte do Exercício 5 para que a função scanf () é usado para ler nas primeiras e últimas seqüências de nome.

Claro, o problema com a função scanf () é que ele doesn&verificação rsquo-t para garantir que a entrada é limitada a 15 caracteres - isto é, a menos que você dirigi-lo a fazê-lo:

exercício 4: Modificar o scanf () funções em seu código-fonte do Exercício 6 para que o caractere de conversão utilizado é escrito como% 15s. Construir e executar.

O caractere de conversão% 15s conta a função primeira scanf () para ler apenas as primeiras 15 caracteres de entrada e colocá-lo na matriz de caracteres (string). Qualquer texto extra é então lida pela função segunda scanf (), e qualquer texto extra depois que é descartado.


Publicações relacionadas