English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriais Básicos de Linguagem C

Controle de Fluxo de Linguagem C

Funções C

Array C

Ponteiro C

String C

Estruturas de Linguagem C

Arquivos de Linguagem C

Outros C

Manual de Referência do Linguagem C

gets() e puts() C

gets() e puts() são declarados no cabeçalho stdio.h. Essas funções são usadas para entrada de strings/Operações de saída.

Função gets() em C

A função gets() permite que o usuário insira alguns caracteres e, em seguida, pressione a tecla Enter. Todos os caracteres inseridos são armazenados em um array de caracteres. Um caractere nulo é adicionado ao array para torná-lo uma string. A gets() permite que o usuário insira strings separadas por espaços. Ela retorna a string inserida pelo usuário.

Declaração

gets(char[]);

Uso da função gets() para ler strings

#include<stdio.h>
void 	main(){
	char 	s[30];
	printf("Insira uma string? ");
	gets(s);
	printf("Você inseriu 	%s", s);
}

Resultado de saída

Insira uma string? 
pt.oldtoolbag.com
Você inseriu 	pt.oldtoolbag.com

Uso da função gets() é arriscado, pois não realiza nenhuma verificação de ligação de array e continua lendo caracteres até encontrar uma nova linha (enter). Ele é afetado pelo overflow de buffer, que pode ser evitado usando fgets(). fgets() garante que os caracteres lidos não excedam o limite máximo. Veja o exemplo a seguir.

#include<stdio.h>
void 	main() 
{ 
   char 	str[20]; 
   printf("Insira uma string? ");
   fgets(str, 20, 	stdin); 
   printf("%s", 	str); 
}

Resultado de saída

Insira uma string? 	pt.oldtoolbag.com 	Tutoriais Básicos
pt.oldtoolbag.com 	Básico

Função puts() em C

A função puts() é muito semelhante à função printf(). A função puts() é usada para imprimir strings no console, antes de ser lida com get() ou scanf(). A função tem a seguinte função: retorna um valor inteiro que representa o número de caracteres impressos no console. Devido ao caractere de nova linha adicional que é impresso, movendo o cursor para uma nova linha no console, o valor inteiro retornado pela puts() sempre é igual ao número de caracteres na string mais1.

Declaração

int 	puts(char[])

Vamos ver um exemplo, que usa gets() para ler uma string e puts() para imprimi-la no console.

#include<stdio.h>  
#include 	<string.h>    
int 	main(){    
    char 	name[50];    
    printf("Insira seu nome: ");    
    gets(name); //Ler String do Usuário    
    printf("Seu nome é: ");    
    puts(name);  //Exibir String    
    return 0;    
}

Saída:

Insira seu nome: Seagull Li
Seu nome é: Seagull Li