Jak číst řetězec v C

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.