Protótipo:
char *gets (char *s);
Pede ao usuário que entre uma string, que será armazenada na string s. O
ponteiro que a função retorna é o próprio s.
gets não é uma função segura. Por quê? Simplesmente porque com gets
pode ocorrer um estouro da quantidade de posições que foi especificada na string . Veja
o exemplo abaixo:
#include <stdio.h>
int main()
{
char buffer[10];
printf("Entre com o seu nome");
gets(buffer);
printf("O nome é: %s", buffer);
return 0;
}
Se o usuário digitar como entrada:
Renato Cardoso Mesquita
ou seja, digitar um total de 23 caracteres: 24 posições (incluindo o '\0' ) serão utilizadas para armazenar a string. Como a string buffer[] só tem 10 caracteres, os 14 caracteres adicionais serão colocados na área de memória subsequente à ocupada por ela, escrevendo uma região de memória que não está reservada à string. Este efeito é conhecido como "estouro de buffer" e pode causar problemas imprevisíveis. Uma forma de se evitar este problema é usar a função fgets, conforme veremos posteriormente
Protótipo:
int puts (char *s);
puts() coloca a string s na tela.
AUTO AVALIAÇÃO
Veja como você está. Escreva um programa que leia nomes pelo teclado e os imprima na tela. Use as funções puts e gets para a leitura e impressão na tela.
Curso de C do CPDEE/UFMG - 1996 - 1999