Hogyan olvassunk el egy karakterláncot C-ben. A C programozási nyelv nem biztosít tényleges karakterlánc-adattípust. C-ben egy karakterláncot egy karaktertömb emulál, amely NULL-ra végződik. Egy ilyen tömb deklarálható statikusan vagy mutatóként. A C szabvány számos funkciót biztosít a karaktertömbök vagy C karakterláncok kezeléséhez. Ez a cikk azokra a függvényekre összpontosít, amelyek a bemeneti adatfolyamból és fájlokból olvasnak. Kövesse ezeket a tippeket, hogy megtanulja, hogyan kell olvasni egy karakterláncot C nyelven.
1. lépés
Értsd meg az alapokat. A C karakterlánc egy diagram típusú tömb. Mint minden C tömb esetében, az első elem indexelése 0, az utolsó pedig "karakterlánc hossza mínusz 1". Általában a fordító NULL értéket szúr be az utolsó helyre, így a karakterlánc tartalmazhatja a "karakterlánc hossza mínusz 1" értéket. elemeket. A nulla egyenértékű a 0x00-val egész számban, a \0-val pedig karakteres formában. Az elemekhez a "[]" operátor fér hozzá. A 2. lépés ezeket a fogalmakat szemlélteti.
A nap videója
2. lépés
Adja hozzá az alábbi "include direktívát" bármely forrásfájlhoz az oktatóanyag funkcióinak használata előtt:
#include < stdio.h >
3. lépés
Egy C karakterlánc deklarálása. Az alábbi kód egy deklarációt mutat a statikus és a pointer módszerrel:
// statikus deklaráció char str[50] = {0}; // az összes elem inicializálásának gyors módja 0-ra // str[49] NULL // str kapacitása 48 karakter // deklaráció mutató karakterrel pStr = NULL; // nincs memóriafoglalás pStr = (char)malloc (50); // ezt a "malloc()" végzi
4. lépés
Adatok beolvasása egy C karakterláncba a "scanf()" használatával, amely a szabványtól szóközzel elválasztott karakterláncok sorozatát olvassa be bemenetet, és elhelyezi azokat a megfelelő referenciaváltozókhoz tartozó címekben, egy "formátum szerint húr":
int n; printf("Adja meg keresztnevét és életkorát: "); scanf("%s%d", str, &n); // printf("A neved %s és %d öreg\n", str, n);
5. lépés
Tegye be az adatokat egy C karakterláncba az egyszerűbb "gets()" függvény segítségével, amely a szabványos bemeneti adatokat csak egy karakterláncba olvassa be:
printf("Adja meg vezetéknevét: "); kap (str); printf("A neved %s\n", str);
6. lépés
Fájladatok beolvasása egy C karakterláncba az "fscanf()" használatával; ez a függvény analóg a "scanf()"-hez:
FILE* pFájl; pFájl = fopen("sajátFájl.txt", "r"); // tételezzük fel, hogy a fájl létezik és adatokkal rendelkezik if (NULL != pFile) { fscanf (pFile, "%s", str); printf("A fájl első szava %s\n", str); fclose (pFile); }
7. lépés
Ismételje meg az 5. lépést az "fgets()" használatával, amely ugyanúgy működik, mint a "gets()":
FILE* pFájl; pFájl = fopen("sajátFájl.txt", "r"); if (NULL != pFájl) { fgets (pFile, str); printf("A fájl első szava %s\n", str); fclose (pFile); }
Dolgok, amelyekre szüksége lesz
C/C++ IDE vagy C fordító
Könyv C-ről, például "A C programozási nyelv", Brian W. Kernighan
Tipp
Ha többet szeretne megtudni az említett funkciókról, keresse fel a C Plus Plus webhelyet.
Figyelem
Ne próbálja meg lefordítani ezt a kódot. Csak a funkciókat hivatott bemutatni. Ez nem egy koherens program, és a fordításkor hibákat ad.