QUESTÃO 5 Trabalhar com dados textuais, em linguagem C, pode não ser tão trivial quanto em outras linguagens. Isso se deve ao fato de que o C é uma linguagem que permite a manipulação dos dados de forma bastante granular. Isto é, em C, trabalhar com texto depende muito da forma com a qual esse texto é codificado e de suas representações em memória e em tempo de execução. Para tentar simplificar as manipulações de dados textuais, existe a biblioteca string.h. No código-fonte a seguir, temos um exemplo do uso de funções da biblioteca string.h, observe atentamente:
Realize o teste de mesa no algoritmo exposto, ou, quem sabe, até o debug. Com base nisso, analise as afirmativas a seguir:
I. Pode-se dizer que o usuário deve ser capaz de armazenar, no máximo, 9 caracteres na string "str", já que o último caractere deve ser reservado para o caractere nulo.
II. O uso do fgets() geralmente é recomendado para a leitura de dados em arquivos, o que nos faz assumir que "stdin" é uma espécie de arquivo.
III. Independentemente do texto que o usuário inserir durante a execução da linha de código 08, o conteúdo de "tam", ao fim do programa, será igual a 9.
É correto o que se afirma em:
Alternativa 1: I, apenas. Alternativa 2: II, apenas. Alternativa 3: III, apenas. Alternativa 4: I e II, apenas. Alternativa 5: II e III, apenas.
Realizando o teste de mesa e analisando as afirmativas, podemos chegar à seguinte conclusão:
1. Na declaração da string "str", foi reservado espaço para 10 caracteres, o que permite armazenar até 9 caracteres, já que o último caractere deve ser reservado para o caractere nulo. Portanto, a afirmativa I está correta.
2. A função fgets() é usada para ler strings de um arquivo ou da entrada padrão do usuário (stdin). Portanto, a afirmativa II está correta.
3. Na linha 11, a função strlen() retorna o comprimento da string "str", que pode ser de até 9 caracteres (como visto na afirmativa I). Portanto, a afirmativa III está incorreta, já que o valor de "tam" será igual ao comprimento da string "str", que pode variar dependendo do texto inserido pelo usuário.
Dessa forma, a alternativa correta é a 4: I e II, apenas.
8 votes Thanks 6
vagnerwillian99
DESCORDO! fiz o teste no sistema utilizando o DEV-C++ e a ALTERNATIVA 3 está correto!
Lista de comentários
Resposta:
Realizando o teste de mesa e analisando as afirmativas, podemos chegar à seguinte conclusão:
1. Na declaração da string "str", foi reservado espaço para 10 caracteres, o que permite armazenar até 9 caracteres, já que o último caractere deve ser reservado para o caractere nulo. Portanto, a afirmativa I está correta.
2. A função fgets() é usada para ler strings de um arquivo ou da entrada padrão do usuário (stdin). Portanto, a afirmativa II está correta.
3. Na linha 11, a função strlen() retorna o comprimento da string "str", que pode ser de até 9 caracteres (como visto na afirmativa I). Portanto, a afirmativa III está incorreta, já que o valor de "tam" será igual ao comprimento da string "str", que pode variar dependendo do texto inserido pelo usuário.
Dessa forma, a alternativa correta é a 4: I e II, apenas.