Come leggere una stringa in C
Come leggere una stringa in C. Il linguaggio di programmazione C non fornisce un tipo di dati stringa effettivo. In C, una stringa viene emulata da una matrice di caratteri che termina con NULL. Tale array può essere dichiarato staticamente o come puntatore. Il C standard fornisce molte funzioni per manipolare gli array di caratteri o le stringhe C. Questo articolo è incentrato sulle funzioni che leggono dal flusso di input e dai file. Segui questi suggerimenti per imparare a leggere una stringa in C.
Passaggio 1
Comprendi le basi. Una stringa C è una matrice di tipo grafico. Come con tutti gli array C, il primo elemento è indicizzato a 0 e l'ultimo a "lunghezza della stringa meno 1". Di solito, il compilatore inserisce NULL nell'ultima posizione, quindi la stringa può contenere elementi "lunghezza della stringa meno 1". Null equivale a 0x00 in formato intero e '\0' in formato char. Gli elementi sono accessibili tramite l'operatore "[]". Il passaggio 2 illustra questi concetti.
Passaggio 2
Aggiungi la "direttiva include" di seguito a qualsiasi file sorgente prima di utilizzare le funzioni di questo tutorial:
#include
Passaggio 3
Dichiara una stringa C. Il codice seguente mostra una dichiarazione utilizzando il metodo statico e puntatore:
// dichiarazione statica char str[50] ={0}; // modo abbreviato per inizializzare tutti gli elementi a 0 // str[49] è NULL // str ha una capacità di 48 caratteri // dichiarazione tramite puntatore char pStr =NULL; // nessuna allocazione di memoria pStr =(char )malloc(50); // questo viene fatto da "maloc()"
Passaggio 4
Legge i dati in una stringa C utilizzando "scanf()", che legge una serie di stringhe separate da spazio dallo standard input e le inserisce negli indirizzi appartenenti alle opportune variabili di riferimento, secondo una "format string":
int n; printf("Inserisci il tuo nome e l'età:"); scanf("%s%d", str, &n); // printf("Il tuo nome è %s e sei %d vecchio\n", str, n);
Passaggio 5
Inserisci i dati in una stringa C usando la più semplice funzione "gets()", che legge i dati dallo standard input solo in una stringa:
printf("Inserisci il tuo cognome:"); ottiene(str); printf("Il tuo nome è %s\n", str);
Passaggio 6
Leggi i dati del file in una stringa C usando "fscanf()"; questa funzione è analoga a "scanf()":
FILE* pFile; pFile =fopen("myFile.txt", "r"); // presuppone che il file esista e contenga dati if (NULL !=pFile) { fscanf(pFile, "%s", str); printf("La prima parola nel file è %s\n", str); fclose(pFile); }
Passaggio 7
Ripeti il passaggio 5 usando "fgets()", che funziona come "gets()":
FILE* pFile; pFile =fopen("myFile.txt", "r"); if (NULL !=pFile) { fgets(pFile, str); printf("La prima parola nel file è %s\n", str); fclose(pFile); }
Suggerimento
Per saperne di più sulle funzioni menzionate, visitare il sito Web di C Plus Plus.
Avviso
Non provare a compilare questo codice. Ha solo lo scopo di dimostrare le funzioni. Non è un programma coerente e genererà errori durante la compilazione.