Hur man läser en sträng i C

Hur man läser en sträng i C. Programmeringsspråket C tillhandahåller inte en faktisk strängdatatyp. I C emuleras en sträng av en uppsättning tecken som slutar i NULL. En sådan array kan deklareras statiskt eller som en pekare. Standard C tillhandahåller många funktioner för att manipulera teckenmatriser eller C-strängar. Den här artikeln fokuserar på funktionerna som läser från indataströmmen och från filer. Följ dessa tips för att lära dig hur man läser en sträng i C.

Steg 1

Förstå grunderna. En C-sträng är en array av typen diagram. Som med alla C-matriser indexeras det första elementet till 0 och det sista vid "strängens längd minus 1". Vanligtvis sätter kompilatorn in NULL på den sista platsen, så strängen kan hålla "strängens längd minus 1" element. Null motsvarar 0x00 i heltalsform och '\0' i char-form. Elementen nås av operatorn "[]". Steg 2 illustrerar dessa begrepp.

Dagens video

Steg 2

Lägg till "inkludera direktivet" nedan i valfri källfil innan du använder funktionerna i denna handledning:

#include < stdio.h >

Steg 3

Deklarera en C-sträng. Koden nedan visar en deklaration med statisk och pekarmetoden:

// statisk deklaration char str[50] = {0}; // förkortning sätt att initiera alla element till 0 // str[49] är NULL // str har kapacitet för 48 tecken // deklaration med pekarteck pStr = NULL; // ingen minnesallokering pStr = (char)malloc (50); // detta görs av "malloc()"

Steg 4

Läs data till en C-sträng med "scanf()," som läser en serie strängar separerade med mellanslag från standarden mata in och placerar dem i adresserna som tillhör lämpliga referensvariabler, enligt ett "format sträng":

int n; printf("Ange ditt förnamn och ålder: "); scanf("%s%d", str, &n); // printf("Ditt namn är %s och du är %d gammal\n", str, n);

Steg 5

Lägg data i en C-sträng med den enklare "gets()"-funktionen, som endast läser data från standardinmatningen i en sträng:

printf("Ange ditt efternamn: "); får (str); printf("Ditt namn är %s\n", str);

Steg 6

Läs fildata i en C-sträng med "fscanf()"; denna funktion är analog med "scanf()":

FIL* pFile; pFile = fopen("minFil.txt", "r"); // antar att filen existerar och har data if (NULL != pFile) { fscanf (pFile, "%s", str); printf("Det första ordet i filen är %s\n", str); fclose (pFile); }

Steg 7

Upprepa steg 5 med "fgets()," som fungerar på samma sätt som "gets()":

FIL* pFile; pFile = fopen("minFil.txt", "r"); if (NULL != pFile) { fgets (pFile, str); printf("Det första ordet i filen är %s\n", str); fclose (pFile); }

Saker du behöver

  • C/C++ IDE- eller C-kompilator

  • Bok om C, som "The C Programming Language" av Brian W. Kernighan

Dricks

För att lära dig mer om de nämnda funktionerna, besök webbplatsen C Plus Plus.

Varning

Försök inte att kompilera den här koden. Det är bara menat att demonstrera funktionerna. Det är inte ett sammanhängande program och kommer att ge fel när det kompileras.