Gets() e puts() sono dichiarati nel file header stdio.h. Entrambe le funzioni sono coinvolte nelle operazioni di input/output delle stringhe.
La funzione C ottiene()
La funzione goes() consente all'utente di inserire alcuni caratteri seguiti dal tasto Invio. Tutti i caratteri immessi dall'utente vengono memorizzati in un array di caratteri. Il carattere null viene aggiunto all'array per renderlo una stringa. Il get() consente all'utente di inserire stringhe separate da spazi. Restituisce la stringa inserita dall'utente.
Dichiarazione
char[] gets(char[]);
Leggere la stringa usando goes()
#include void main () { char s[30]; printf('Enter the string? '); gets(s); printf('You entered %s',s); }
Produzione
Enter the string? javatpoint is the best You entered javatpoint is the best
La funzione goes() è rischiosa da usare poiché non esegue alcun controllo sui limiti dell'array e continua a leggere i caratteri finché non viene incontrata la nuova riga (invio). Soffre di buffer overflow, che può essere evitato utilizzando fgets(). fgets() si assicura che non venga letto più del limite massimo di caratteri. Considera il seguente esempio.
#include void main() { char str[20]; printf('Enter the string? '); fgets(str, 20, stdin); printf('%s', str); }
Produzione
Enter the string? javatpoint is the best website javatpoint is the b
La funzione C puts()
La funzione puts() è molto simile alla funzione printf(). La funzione puts() viene utilizzata per stampare sulla console la stringa precedentemente letta utilizzando la funzione goes() o scanf(). La funzione puts() restituisce un valore intero che rappresenta il numero di caratteri stampati sulla console. Poiché stampa un carattere di nuova riga aggiuntivo con la stringa, che sposta il cursore sulla nuova riga sulla console, il valore intero restituito da puts() sarà sempre uguale al numero di caratteri presenti nella stringa più 1.
Dichiarazione
int puts(char[])
Vediamo un esempio per leggere una stringa utilizzando goes() e stamparla sulla console utilizzando puts().
#include #include int main(){ char name[50]; printf('Enter your name: '); gets(name); //reads string from user printf('Your name is: '); puts(name); //displays string return 0; }
Produzione:
Enter your name: Sonoo Jaiswal Your name is: Sonoo Jaiswal