Encontre o erro em cada um dos segmentos de programa a seguir e explique como corrigi-lo:
- 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.