Sådan læser du en streng i C. C-programmeringssproget giver ikke en egentlig strengdatatype. I C emuleres en streng af en række tegn, der ender i NULL. Et sådant array kan erklæres statisk eller som en pointer. Standard C giver mange funktioner til at manipulere tegnarrays eller C-strenge. Denne artikel fokuserer på de funktioner, der læser fra inputstrømmen og fra filer. Følg disse tips for at lære at læse en streng i C.
Trin 1
Forstå det grundlæggende. En C-streng er et array af typen diagram. Som med alle C-arrays er det første element indekseret til 0, og det sidste ved "strengens længde minus 1." Normalt indsætter compileren NULL på den sidste placering, så strengen kan holde "strengens længde minus 1" elementer. Null svarer til 0x00 i heltalsform og '\0' i tegnform. Elementer tilgås af operatøren "[]". Trin 2 illustrerer disse begreber.
Dagens video
Trin 2
Tilføj "inkluder-direktivet" nedenfor til enhver kildefil, før du bruger funktionerne i denne øvelse:
#include < stdio.h >
Trin 3
Erklær en C-streng. Koden nedenfor viser en erklæring ved hjælp af den statiske og pointermetoden:
// statisk erklæring char str[50] = {0}; // stenografi måde at initialisere alle elementer til 0 // str[49] er NULL // str har kapacitet til 48 tegn // erklæring med pointer char pStr = NULL; // ingen hukommelsesallokering pStr = (char)malloc (50); // dette gøres af "malloc()"
Trin 4
Læs data ind i en C-streng ved hjælp af "scanf()," som læser en række strenge adskilt med mellemrum fra standarden input og placerer dem i adresserne, der hører til de relevante referencevariabler, i henhold til et "format snor":
int n; printf("Indtast dit fornavn og din alder: "); scanf("%s%d", str, &n); // printf("Dit navn er %s og du er %d gammel\n", str, n);
Trin 5
Sæt data ind i en C-streng ved hjælp af den enklere "gets()"-funktion, som kun læser data fra standardinput i en streng:
printf("Indtast dit efternavn: "); får (str); printf("Dit navn er %s\n", str);
Trin 6
Læs fildata ind i en C-streng ved hjælp af "fscanf()"; denne funktion er analog med "scanf()":
FIL* pFil; pFile = fopen("minFil.txt", "r"); // antager, at filen eksisterer og har data, hvis (NULL != pFile) { fscanf (pFile, "%s", str); printf("Det første ord i filen er %s\n", str); fclose (pFile); }
Trin 7
Gentag trin 5 med "fgets()," som virker på samme måde som "gets()":
FIL* pFil; pFile = fopen("minFil.txt", "r"); if (NULL != pFile) { fgets (pFile, str); printf("Det første ord i filen er %s\n", str); fclose (pFile); }
Ting du skal bruge
C/C++ IDE eller C compiler
Bog om C, såsom "The C Programming Language" af Brian W. Kernighan
Tip
For at lære mere om de nævnte funktioner, besøg C Plus Plus hjemmesiden.
Advarsel
Forsøg ikke at kompilere denne kode. Det er kun beregnet til at demonstrere funktionerne. Det er ikke et sammenhængende program og vil give fejl, når det kompileres.