>> Tecnologia elettronica >  >> Casa intelligente >> Vita smart

Come Leggere una Stringa in C

Il linguaggio C non fornisce un tipo di dato stringa effettivo. In C, una stringa è emulata da un array di caratteri che termina con NULL. Un tale array può essere dichiarato staticamente o come puntatore. Il C standard fornisce molte funzioni per manipolare array di caratteri o stringhe C. Questo articolo si concentra sulle funzioni che leggono dal flusso di input e dai file.

Passo 1: Capire le Basi

Una stringa C è un array di tipo char. Come per tutti gli array C, il primo elemento è indicizzato a 0, l'ultimo a "lunghezza stringa meno 1". Solitamente il compilatore inserisce NULL all'ultima posizione, quindi la stringa può contenere "lunghezza meno 1" elementi. NULL equivale a 0x00 in forma intera e '\0' in forma char. Gli elementi sono accessibili con l'operatore []. Il Passo 2 illustra questi concetti.

Passo 2: Direttiva Include

Aggiungi la direttiva include qui sotto a qualsiasi file sorgente prima di usare le funzioni di questo tutorial:

#include <stdio.h>

Passo 3: Dichiarare una Stringa C

Il codice sotto mostra una dichiarazione con il metodo statico e con puntatore:

// dichiarazione statica
char str[50] = {0}; // modo abbreviato per inizializzare tutti gli elementi a 0
// str[49] è NULL
// str ha capacità per 48 caratteri

// dichiarazione per puntatore
char *pStr = NULL; // nessuna allocazione memoria
pStr = (char*)malloc(50); // fatto da "malloc()"

Passo 4: Leggere con scanf()

Leggi dati in una stringa C usando scanf(), che legge una serie di stringhe separate da spazi dall'input standard e le pone negli indirizzi delle variabili di riferimento appropriate, secondo una "stringa di formato":

int n;
printf("Inserisci nome e età: ");
scanf("%s%d", str, &n);
// printf("Il tuo nome è %s e hai %d anni\n", str, n);

Passo 5: Usare gets() (Semplice)

Metti dati in una stringa C usando la più semplice funzione gets(), che legge dati dall'input standard in una stringa soltanto:

printf("Inserisci cognome: ");
gets(str);
printf("Il tuo nome è %s\n", str);

Passo 6: Leggere da File con fscanf()

Leggi dati da file in una stringa C usando fscanf(); questa funzione è analoga a scanf():

FILE* pFile;
pFile = fopen("mioFile.txt", "r"); // assume che il file esista e abbia dati
if (NULL != pFile) {
    fscanf(pFile, "%s", str);
    printf("La prima parola nel file è %s\n", str);
    fclose(pFile);
}

Passo 7: Leggere da File con fgets()

Ripeti il Passo 5 usando fgets(), che funziona come gets():

FILE* pFile;
pFile = fopen("mioFile.txt", "r");
if (NULL != pFile) {
    fgets(pFile, str); // Nota: sintassi corretta fgets(str, size, pFile)
    printf("La prima parola nel file è %s\n", str);
    fclose(pFile);
}

Suggerimento

Per saperne di più sulle funzioni menzionate, visita il sito C Plus Plus (cplusplus.com).

Avvertenza

Non provare a compilare questo codice. È solo per dimostrare le funzioni. Non è un programma coerente e darà errori in compilazione.

  1. Come leggere una fattura AT&T
  2. Come leggere una scheda SD Furuno
  3. Come Usare una Light Pen
  4. Come Leggere la Resistenza su un Multimetro
  5. Come posare cavo coassiale
  6. Come leggere una scheda XD