Encontre o erro em cada um dos segmentos de programa a seguir e explique como corrigi-lo:

  1. char s[ 10 ];

strncpy( s, “olá”, 5 );

printf( “%s\n”, s );

Passo 1

E aí meus queridos!! Tudo bem com vocês??

Vamos entender um pouco sobre a função strncpy.

Sabemos que a função strncpy trabalha com três argumentos:

Strncpy ( array, string, número), sendo:

Primeiro argumento (Array) = o argumento que vai receber o conteúdo copiado;

Segundo argumento (String) = Conteúdo a ser copiado;

Terceiro argumento (Número) = Número de caracteres a serem copiados.

Obs: a função strncpy não copia o caractere nulo de finalização da string. Ou seja: é preciso acrescentar um caractere a mais no terceiro argumento da função ou acrescentar o caractere nulo logo após.

Exemplo:

Temos como resultado no compilador:

Passo 2

Agora que sabemos como funciona a função strncpy, podemos ver falta a inclusão do caractere nulo do nosso enunciado, o que faz com que nosso código fique errado.

Então corrigindo e acrescentando o caractere nulo:

Ou,

Resposta

Erro: A função strncpy não permite o caractere nulo de finalização do array s, pois o terceiro argumento tem a mesma quantidade de caracteres do segundo argumento “Hello”. Corrigimos o erro acrescentando o caractere nulo após a função ou aumento o número dentro do terceiro argumento.