Kā nolasīt virkni C valodā. C programmēšanas valoda nenodrošina faktisku virknes datu tipu. Programmā C virkne tiek emulēta ar rakstzīmju masīvu, kas beidzas ar NULL. Šādu masīvu var deklarēt statiski vai kā rādītāju. Standarts C nodrošina daudzas funkcijas, lai manipulētu ar rakstzīmju masīviem vai C virknēm. Šajā rakstā galvenā uzmanība ir pievērsta funkcijām, kas tiek lasītas no ievades straumes un failiem. Izpildiet šos padomus, lai uzzinātu, kā lasīt virkni C valodā.
1. darbība
Saprast pamatus. C virkne ir tipa diagrammas masīvs. Tāpat kā ar visiem C masīviem, pirmais elements tiek indeksēts ar 0, bet pēdējais ar "virknes garums mīnus 1". Parasti kompilators ievieto NULL pēdējā vietā, tāpēc virknē var būt "virknes garums mīnus 1". elementi. Null ir vienāds ar 0x00 veselu skaitļu formā un "\0" rakstzīmju formā. Elementiem piekļūst operators "[]". 2. darbība ilustrē šos jēdzienus.
Dienas video
2. darbība
Pirms šīs apmācības funkciju izmantošanas pievienojiet jebkuram avota failam tālāk norādīto "iekļaut direktīvu".
#include < stdio.h >
3. darbība
Deklarējiet C virkni. Tālāk redzamais kods parāda deklarāciju, izmantojot statisko un rādītāja metodi:
// statiskā deklarācija char str[50] = {0}; // saīsināts veids, kā inicializēt visus elementus uz 0 // str[49] ir NULL // str ir ietilpība 48 rakstzīmes // deklarācija ar rādītāja char pStr = NULL; // nav atmiņas piešķiršanas pStr = (char)malloc (50); // to dara "malloc()"
4. darbība
Lasīt datus C virknē, izmantojot "scanf(),", kas nolasa virknes, kas no standarta atdalītas ar atstarpi. ievadi un ievieto tos adresēs, kas pieder pie attiecīgajiem atsauces mainīgajiem atbilstoši "formātā". virkne":
int n; printf ("Ievadiet savu vārdu un vecumu: "); scanf("%s%d", str, &n); // printf("Tavs vārds ir %s un tu esi %d vecs\n", str, n);
5. darbība
Ievietojiet datus C virknē, izmantojot vienkāršāku funkciju "gets()", kas nolasa datus no standarta ievades tikai virknē:
printf ("Ievadiet savu uzvārdu: "); izpaužas (str); printf("Jūsu vārds ir %s\n", str);
6. darbība
Lasīt faila datus C virknē, izmantojot "fscanf()"; šī funkcija ir analoga "scanf()":
FILE* pFile; pFails = fopen("mansFails.txt", "r"); // pieņemsim, ka fails eksistē un tam ir dati if (NULL != pFile) { fscanf (pFile, "%s", str); printf("Pirmais vārds failā ir %s\n", str); fclose (pFile); }
7. darbība
Atkārtojiet 5. darbību, izmantojot "fgets(), kas darbojas tāpat kā "gets()":
FILE* pFile; pFails = fopen("mansFails.txt", "r"); if (NULL != pFile) { fgets (pFile, str); printf("Pirmais vārds failā ir %s\n", str); fclose (pFile); }
Lietas, kas jums būs nepieciešamas
C/C++ IDE vai C kompilators
Grāmata par C, piemēram, Braiena V. "C programmēšanas valoda". Kernighan
Padoms
Lai uzzinātu vairāk par minētajām funkcijām, apmeklējiet vietni C Plus Plus.
Brīdinājums
Nemēģiniet apkopot šo kodu. Tas ir paredzēts tikai funkciju demonstrēšanai. Tā nav saskaņota programma un kompilējot radīs kļūdas.