Funzione puts per scrivere stringhe in C

La funzione puts del linguaggio C server per scrivere una stringa sullo stdout (standard output) aggiungendo alla fine dell’output il carattere newline '\n'. Il funzionamento della puts risulta essere simile al funzionamento della funzione putchar, con la differenza principale che quest’ultima è in grado di scrivere solamente un carattere per volta.
Di seguito viene riportata la sintassi della funzione puts in C:



int puts(const char *str);

Come con la funzione putchar, anche la puts restituisce un valore intero, ma in questo caso verrà restituito un valore non negativo corrispondente al numero di caratteri stampati a schermo in caso di successo, mentre in caso di errore verrà restituito EOF. Inoltre, la funzione puts richiede come parametro un array di caratteri contenente la stringa da stampare sullo standard output.

Nota: la stringa stampata dalla funzione puts non include il carattere nullo '\0'.

Esempio di utilizzo della funzione puts in C

Nel seguente esempio chiediamo all’utente di inserire delle parole e usando la funzione fgets immagazziniamo l’input ricevuto all’interno di un array di caratteri che successivamente verrà stampato a schermo utilizzando la funzione puts.



#include <stdio.h>
#define MAX 100

int main(){
    char contenuto[MAX];
    
    printf("Scrivi qualcosa: ");
    fgets(contenuto, MAX, stdin);
    
    printf("Hai scritto: ");
    puts(contenuto);

    return 0;
}

Dato che la funzione puts restituisce un valore intero che indica se l’operazione di scrittura è andata a buon fine oppure no, possiamo stampare a schermo tale valore:



#include <stdio.h>

int main(){
    char nome[50] = "Mario";
    
    int x = puts(nome);
    printf("%d", x);

    return 0;
}

In questo caso la puts ci restituisce il numero intero 6, questo ha due significati: il primo è che l’operazione di scrittura è andata a buon fine visto che il numero è non negativo; il secondo significato è che la funzione puts ha scritto 6 caratteri sullo standard output, infatti la stringa "Mario" contiene 5 caratteri, ma la funzione puts aggiunge al termine della stringa anche il carattere newline '\n'.

Indice pagine linguaggio C: