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 un array 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 si concentra sulle funzioni che leggono dal flusso di input e dai file. Segui questi suggerimenti per imparare a leggere una stringa in C.
Passo 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 "lunghezza della stringa meno 1" elementi. Null è equivalente a 0x00 in formato intero e '\0' in formato char. Gli elementi sono accessibili dall'operatore "[]". Il passaggio 2 illustra questi concetti.
Video del giorno
Passo 2
Aggiungi la "direttiva include" di seguito a qualsiasi file sorgente prima di utilizzare le funzioni di questo tutorial:
#include < stdio.h >
Passaggio 3
Dichiara una stringa C. Il codice seguente mostra una dichiarazione che utilizza il metodo statico e il puntatore:
// dichiarazione statica char str[50] = {0}; // modo abbreviato per inizializzare tutti gli elementi su 0 // str[49] è NULL // str ha una capacità di 48 caratteri // dichiarazione per carattere puntatore pStr = NULL; // nessuna allocazione di memoria pStr = (char)malloc (50); // questo viene fatto da "malloc()"
Passaggio 4
Leggi i dati in una stringa C usando "scanf()", che legge una serie di stringhe separate da spazio dallo standard input e li inserisce negli indirizzi appartenenti alle opportune variabili di riferimento, secondo un "formato" corda":
int n; printf("Inserisci il tuo nome ed età: "); scanf("%s%d", str, &n); // printf("Il tuo nome è %se 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 dall'input standard solo in una stringa:
printf("Inserisci il tuo cognome: "); ottiene (str); printf("Il tuo nome è %s\n", str);
Passaggio 6
Leggere i dati del file in una stringa C usando "fscanf()"; questa funzione è analoga a "scanf()":
FILE* pFile; pFile = fopen("mioFile.txt", "r"); // presumo 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("mioFile.txt", "r"); if (NULL != pFile) { fgets (pFile, str); printf("La prima parola nel file è %s\n", str); fclose (pFile); }
Cose di cui avrai bisogno
C/C++ IDE o compilatore C
Prenota su C, come "The C Programming Language" di Brian W. Kernighan
Consiglio
Per ulteriori informazioni sulle funzioni menzionate, visitare il sito Web di C Plus Plus.
Avvertimento
Non provare a compilare questo codice. Ha solo lo scopo di dimostrare le funzioni. Non è un programma coerente e darà errori quando compilato.