Ako čítať reťazec v C. Programovací jazyk C neposkytuje skutočný dátový typ reťazca. V jazyku C je reťazec emulovaný poľom znakov, ktoré končí na NULL. Takéto pole môže byť deklarované staticky alebo ako ukazovateľ. Štandard C poskytuje mnoho funkcií na manipuláciu s poľami znakov alebo reťazcami C. Tento článok sa zameriava na funkcie, ktoré čítajú zo vstupného toku a zo súborov. Postupujte podľa týchto tipov, aby ste sa naučili čítať reťazec v C.
Krok 1
Pochopte základy. Reťazec C je pole typu grafu. Rovnako ako u všetkých polí C je prvý prvok indexovaný na 0 a posledný na "dĺžke reťazca mínus 1." Kompilátor zvyčajne vloží NULL na posledné miesto, takže reťazec môže obsahovať "dĺžku reťazca mínus 1" prvkov. Null je ekvivalentom 0x00 vo forme celého čísla a '\0' vo forme znakov. K prvkom pristupuje operátor „[]“. Krok 2 ilustruje tieto pojmy.
Video dňa
Krok 2
Pred použitím funkcií tohto návodu pridajte nižšie uvedenú „smernicu zahrnutia“ do ľubovoľného zdrojového súboru:
#include < stdio.h >
Krok 3
Deklarujte reťazec C. Nižšie uvedený kód zobrazuje deklaráciu pomocou statickej metódy a metódy ukazovateľa:
// statická deklarácia char str[50] = {0}; // skrátený spôsob inicializácie všetkých prvkov na 0 // str[49] je NULL // str má kapacitu 48 znakov // deklarácia ukazovateľom char pStr = NULL; // žiadne pridelenie pamäte pStr = (charmalloc (50); // toto sa robí pomocou "malloc()"
Krok 4
Čítanie údajov do reťazca C pomocou funkcie „scanf()“, ktorá číta sériu reťazcov oddelených medzerou od štandardu vstup a umiestni ich do adries patriacich do príslušných referenčných premenných podľa „formátu reťazec":
int n; printf("Zadajte svoje krstné meno a vek: "); scanf("%s%d", str, &n); // printf("Vaše meno je %s a ste %d starý\n", str, n);
Krok 5
Vložte údaje do reťazca C pomocou jednoduchšej funkcie „gets()“, ktorá načítava údaje zo štandardného vstupu iba do reťazca:
printf("Zadajte svoje priezvisko: "); dostane (str); printf("Vaše meno je %s\n", str);
Krok 6
Čítanie údajov súboru do reťazca C pomocou "fscanf()"; táto funkcia je analogická funkcii „scanf()“:
FILE* pFile; pFile = fopen("myFile.txt", "r"); // predpokladajme, že súbor existuje a má dáta if (NULL != pFile) { fscanf (pFile, "%s", str); printf("Prvé slovo v súbore je %s\n", str); fclose (pFile); }
Krok 7
Opakujte krok 5 pomocou funkcie „fgets()“, ktorá funguje rovnako ako „gets()“:
FILE* pFile; pFile = fopen("myFile.txt", "r"); if (NULL != pFile) { fgets (pFile, str); printf("Prvé slovo v súbore je %s\n", str); fclose (pFile); }
Veci, ktoré budete potrebovať
C/C++ IDE alebo C kompilátor
Kniha o C, napríklad „Programovací jazyk C“ od Briana W. Kernighan
Tip
Ak sa chcete dozvedieť viac o spomínaných funkciách, navštívte webovú stránku C Plus Plus.
Pozor
Nepokúšajte sa skompilovať tento kód. Slúži len na demonštráciu funkcií. Nie je to koherentný program a pri kompilácii bude dávať chyby.