Jak číst řetězec v C. Programovací jazyk C neposkytuje skutečný datový typ řetězce. V C je řetězec emulován polem znaků, které končí na NULL. Takové pole lze deklarovat staticky nebo jako ukazatel. Standard C poskytuje mnoho funkcí pro manipulaci s poli znaků nebo řetězci C. Tento článek se zaměřuje na funkce, které čtou ze vstupního proudu a ze souborů. Podle těchto tipů se dozvíte, jak číst řetězec v C.
Krok 1
Pochopte základy. Řetězec C je pole typu graf. Stejně jako u všech polí C je první prvek indexován na 0 a poslední na "délce řetězce mínus 1." Obvykle kompilátor vloží NULL na poslední místo, takže řetězec může obsahovat "délka řetězce mínus 1" Prvky. Null je ekvivalentní 0x00 ve formě celého čísla a '\0' ve formě znaku. Prvky jsou přístupné operátorem "[]". Krok 2 ilustruje tyto pojmy.
Video dne
Krok 2
Před použitím funkcí tohoto výukového programu přidejte do libovolného zdrojového souboru níže uvedenou „direktivu zahrnout“:
#include < stdio.h >
Krok 3
Deklarujte řetězec C. Níže uvedený kód zobrazuje deklaraci pomocí statické metody a metody ukazatele:
// statická deklarace char str[50] = {0}; // zkrácený způsob inicializace všech prvků na 0 // str[49] je NULL // str má kapacitu 48 znaků // deklarace ukazatelem char pStr = NULL; // žádná alokace paměti pStr = (charmalloc (50); // to se provádí pomocí "malloc()"
Krok 4
Číst data do řetězce C pomocí "scanf()", který čte řadu řetězců oddělených mezerou od standardu vstup a umístí je do adres náležejících k příslušným referenčním proměnným podle „formátu tětiva":
int n; printf("Zadejte své křestní jméno a věk: "); scanf("%s%d", str, &n); // printf("Vaše jméno je %s a jste %d starý\n", str, n);
Krok 5
Vložte data do řetězce C pomocí jednodušší funkce „gets()“, která čte data ze standardního vstupu pouze do řetězce:
printf("Zadejte své příjmení: "); dostane (str); printf("Vaše jméno je %s\n", str);
Krok 6
Načíst data souboru do řetězce C pomocí "fscanf()"; tato funkce je analogická funkci "scanf()":
FILE* pFile; pSoubor = fopen("mujSoubor.txt", "r"); // předpokládáme, že soubor existuje a má data if (NULL != pFile) { fscanf (pFile, "%s", str); printf("První slovo v souboru je %s\n", str); fclose (pFile); }
Krok 7
Opakujte krok 5 pomocí "fgets()", který funguje stejně jako "gets()":
FILE* pFile; pSoubor = fopen("mujSoubor.txt", "r"); if (NULL != pFile) { fgets (pFile, str); printf("První slovo v souboru je %s\n", str); fclose (pFile); }
Věci, které budete potřebovat
C/C++ IDE nebo C kompilátor
Kniha o C, například „Programovací jazyk C“ od Briana W. Kernighan
Spropitné
Chcete-li se o zmíněných funkcích dozvědět více, navštivte web C Plus Plus.
Varování
Nepokoušejte se tento kód zkompilovat. Má pouze demonstrovat funkce. Není to koherentní program a při kompilaci bude dávat chyby.