Curso de C

Lendo e Escrevendo Strings


gets

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

 

puts

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.


Página Anterior  Índice da Aula  Próxima Página


Curso de C do CPDEE/UFMG - 1996 - 1999