Le funzioni gets() e puts() in C sono delle funzioni utilizzate per inserire e visualizzare le stringhe.
La funzione gets() acquisisce una stringa da tastiera, fino alla fine, compresi eventuali spazi e il ritorno a capo che trasforma nel carattere terminatore (\0).
La funzione puts() visualizza l’intera riga di testo, ad esempio una stringa inserita da tastiera, compreso il ritorno a capo.
Esempio 1 sull’uso delle funzioni gets() e puts() in C
Semplice esempio che legge e stampa un nome inserito da tastiera utilizzando le funzioni gets() e puts() in C.
#include <stdio.h>
int main(){
char nome[30];
printf("inserisci il nome ");
gets(nome);
puts(nome);
return 0;
}
Esempio 2 sull’uso della funzione gets()
Data una frase inserita dall’utente, separata da spazi, contare e visualizzare il numero di parole che ha inserito.
Ipotizziamo che non servano più di 100 caratteri, compreso il carattere terminatore, quindi definiamo MAX 100 il numero massimo di caratteri dell’array frase.
Con la funzione gets() leggiamo la frase inserita da tastiera e la salviamo nell’array frase.
printf(“Inserisci una frase: \n”);
gets(frase);
Finchè non arriva al carattere terminatore con un ciclo while controlliamo se ci sono spazi vuoti; se si incrementiamo la variabile contatore, altrimenti non facciamo nulla.
Infine visualizziamo la variabile conta che darà il conteggio delle parole che compongono la frase.
In questo esempio non ho utilizzato la funzione puts() perché è più comodo utilizzare printf().
#include <stdio.h>
#define MAX 100
void main(){
char frase[MAX];
int i=0;
int conta=0;
printf("Inserisci una frase: \n");
gets(frase);
while(frase[i]!='\0')
{
if((frase[i]==' ') && (frase[i-1]!=' '))
conta++;
i++;
}
if (frase[i-1]!=' ')
conta++;
printf("Nella frase ci sono %d",conta);
}
Esempio 3 sull’uso delle funzioni gets() e puts() in C
Trasformare una frase inserita con spazi in una senza spazi utilizzando le funzioni gets() e puts() in C.
Utilizzo in questo caso una seconda stringa che ad esempio chiamo frase2, dove vado a memorizzare a mano a mano i caratteri senza spazi.
Ecco il listato del programma completo.
#include <stdio.h>
#define MAX 100
void main(){
char frase[MAX], frase2[MAX];
int i,j=0,conta=0;
printf("Inserisci una frase: \n");
gets(frase);
while(frase[i]!='\0')
{
if(frase[i]!=' ')
frase2[j++]=frase[i];
i++;
}
frase2[j]='\0';
puts(frase2);
}
Esempio 4 sull’uso delle funzioni gets() e puts() in C
Data una frase inserita dall’utente, contare quante vocali, consonanti e spazi vuoti sono presenti in essa. Consideriamo sia le lettere maiuscole che le minuscole.
Il funzionamento è molto semplice, si scorre la stringa se si trova una vocale maiuscola o minuscola si incrementa conta_vocali, cioè il contatore delle vocali; altrimenti se si trova uno spazio vuoto si incrementa il conta, cioè il contatore degli spazi vuoti; altrimenti per esclusione incrementiamo il conta_cons, ovvero il contatore delle consonanti.
#include <stdio.h>
#define MAX 100
void main(){
char frase[MAX];
int i=0,conta=0,conta_vocali=0,conta_cons=0;
printf("Inserisci una frase: \n");
gets(frase);
while(frase[i]!='\0')
{
if ((frase[i]=='a') || (frase[i]=='e') || (frase[i]=='i') || (frase[i]=='o') ||
(frase[i]=='u') || (frase[i]=='A') || (frase[i]=='E') || (frase[i]=='I') || (frase[i]=='O') ||
(frase[i]=='U'))
conta_vocali++;
else if (frase[i]==' ') conta++;
else conta_cons++;
i++;
}
printf("Le vocali sono : %d",conta_vocali);
printf("\nle consonanti sono: %d",conta_cons);
printf("\nGli spazi vuoti sono : %d",conta);
}
Stiamo escludendo il controllo dei caratteri speciali; si potrebbe perfezionare il programma cercando i caratteri speciali che altrimenti nel listato appena visto verranno inseriti nel conteggio delle consonanti.
Esempio 5 sull’uso delle funzioni gets() e puts() in C
Leggere una frase da tastiera e trasformare ciascun carattere in maiuscolo.
#include <stdio.h>
#define MAX 100
int main(){
char frase[MAX];
int i=0;
printf("Inserisci una frase: \n");
gets(frase);
while(frase[i]!='\0')
{
if ((frase[i]>='a') && (frase[i]<='z'))
frase[i] = (frase[i]-'a') + 'A';
i++;
}
puts(frase);
}
Questi sono dei semplici esempi di utilizzo delle funzioni gets() e puts() in C.
Alcuni link utili:
Funzioni getchar() e putchar() in C
Ricerca di un elemento in una matrice
Array o vettori in linguaggio C
Media dei numeri in un array in linguaggio C
Esempio di array con numeri random in C