Hvordan lese en streng i C. C-programmeringsspråket gir ikke en faktisk strengdatatype. I C emuleres en streng av en rekke tegn som avsluttes i NULL. En slik matrise kan deklareres statisk eller som en peker. Standard C gir mange funksjoner for å manipulere tegnarrayer eller C-strenger. Denne artikkelen fokuserer på funksjonene som leser fra inndatastrømmen og fra filer. Følg disse tipsene for å lære hvordan du leser en streng i C.
Trinn 1
Forstå det grunnleggende. En C-streng er en rekke av typen diagram. Som med alle C-matriser, er det første elementet indeksert til 0, og det siste ved "lengde på streng minus 1." Vanligvis setter kompilatoren inn NULL på det siste stedet, slik at strengen kan inneholde "lengde på streng minus 1" elementer. Null tilsvarer 0x00 i heltallsform og '\0' i tegnform. Elementer åpnes av "[]"-operatøren. Trinn 2 illustrerer disse konseptene.
Dagens video
Steg 2
Legg til "inkluder-direktivet" nedenfor til en hvilken som helst kildefil før du bruker funksjonene til denne opplæringen:
#include < stdio.h >
Trinn 3
Erklær en C-streng. Koden nedenfor viser en erklæring som bruker statisk og pekermetoden:
// statisk erklæring char str[50] = {0}; // stenografi måte å initialisere alle elementer til 0 // str[49] er NULL // str har kapasitet til 48 tegn // erklæring med pekertegn pStr = NULL; // ingen minneallokering pStr = (char) malloc (50); // dette gjøres av "malloc()"
Trinn 4
Les data inn i en C-streng ved å bruke "scanf()," som leser en serie strenger atskilt med mellomrom fra standarden legge inn og plassere dem i adressene som tilhører de aktuelle referansevariablene, i henhold til et "format streng":
int n; printf("Skriv inn fornavn og alder: "); scanf("%s%d", str, &n); // printf("Ditt navn er %s og du er %d gammel\n", str, n);
Trinn 5
Sett data inn i en C-streng ved å bruke den enklere "gets()"-funksjonen, som kun leser data fra standardinndata i en streng:
printf("Skriv inn ditt etternavn: "); får (str); printf("Ditt navn er %s\n", str);
Trinn 6
Les fildata inn i en C-streng ved å bruke "fscanf()"; denne funksjonen er analog med "scanf()":
FIL* pFil; pFile = fopen("minFil.txt", "r"); // antar at filen eksisterer og har data hvis (NULL != pFile) { fscanf (pFile, "%s", str); printf("Det første ordet i filen er %s\n", str); fclose (pFile); }
Trinn 7
Gjenta trinn 5 med "fgets()," som fungerer på samme måte som "gets()":
FIL* pFil; pFile = fopen("minFil.txt", "r"); if (NULL != pFile) { fgets (pFile, str); printf("Det første ordet i filen er %s\n", str); fclose (pFile); }
Ting du trenger
C/C++ IDE eller C kompilator
Bok om C, for eksempel "The C Programming Language" av Brian W. Kernighan
Tips
For å lære mer om de nevnte funksjonene, besøk nettstedet til C Plus Plus.
Advarsel
Ikke prøv å kompilere denne koden. Det er kun ment å demonstrere funksjonene. Det er ikke et sammenhengende program og vil gi feil når det kompileres.