C Programování

Délka řetězce v jazyce C

Délka řetězce v jazyce C
Řetězec v jazyce C je pole znaků, které je ukončeno prázdným znakem (\ 0). Délka řetězce je počet znaků v řetězci. V délce řetězce „\ 0“ se znak nepočítá.

Ve výše uvedeném příkladu délka řetězce str je 6.

V tomto kurzu si nejprve ukážeme, jak používat a uživatelsky definovaná funkce vypočítat délku řetězce a poté vám ukážeme vestavěnou knihovní funkci strlen (). Ukážeme vám také použití velikost operátor pro řetězcové literály.

Délka řetězce pomocí funkce definované uživatelem

Můžete napsat uživatelem definovanou funkci, která vrací počet znaků v řetězci.

// Příklad 1.C
#zahrnout
int stringLength (char * str)

int i = 0;
while (str [i] != '\ 0') i ++;
návrat i;

int main ()

char str [30] = "STRING";
printf ("Délka řetězce str je =>% d \ n", stringLength (str));
návrat 0;

Zde iterujeme smyčku while i = 0 dokud nenarazíme na '\ 0' charakter. Hodnota i se zvyšuje o 1 v každé iteraci smyčky while. Když smyčka končí, hodnota i je délka řetězce.

Délka řetězce pomocí funkce vestavěné knihovny

Integrovaná funkce knihovny strlen () lze také použít k určení délky řetězce.

funkce strlen ():

Soubor záhlaví:

tětiva.h

Syntax:

size_t strlen (const char * str)

Argument: Tato funkce přebírá argument ukazatele typu na char.

Návratová hodnota: Tato funkce vrací délku řetězce str. Všimněte si, že size_t je jen alias celého čísla bez znaménka.

// Příklad 2.C
#zahrnout
#zahrnout
int main ()

char str1 [30] = "Řetězec řetězce";
char * str2;
char * str3;
str2 = str1;
str3 = "STRING POINTER";
printf ("Délka řetězce str1 je =>% ld \ n", strlen (str1));
printf ("Délka řetězce str2 je =>% ld \ n", strlen (str2));
printf ("Délka řetězce str3 je =>% ld \ n", strlen (str3));
printf ("Délka řetězce" STRING LITERALS "je =>% ld \ n", strlen ("STRING LITERALS"));
návrat 0;

Zde předáme řetězcové pole, řetězcový ukazatel a řetězcový literál funkci strlen a funkce vrátí délku řetězce.

Délka řetězce pomocí sizeof Operator

Můžeme také použít velikost operátor pro délku řetězce (pouze pro řetězcový literál). Ale musíme odečíst 1 od hodnoty vrácené tímto operátorem, protože také počítá znak '\ 0'. Pro pole a ukazatel vrátí operátor sizeof přidělenou velikost pole a ukazatele.

// Příklad 3.C
#zahrnout
int main ()

char str1 [30] = "STRING";
char * str2 = str1;
printf ("Délka" STRING "je =>% d \ n", (sizeof ("STRING") - 1));
printf ("Přidělená velikost pole str1 je =>% d \ n", sizeof (str1));
printf ("Velikost ukazatele str2 je =>% d \ n", sizeof (str2));
návrat 0;

Tady v řádku č. 9 předáme řetězcový literál „STRING“ a dostaneme velikost včetně znaku „\ 0“. Odečteme tedy 1 a získáme skutečnou velikost řetězce.

Když předáme pole operátoru sizeof, vrátí přidělenou velikost pole, která je 30, a při předávání znakového ukazatele vrátí velikost ukazatele.

Závěr

V tomto výukovém programu jsme vám tedy ukázali, jak lze délku řetězce vypočítat různými způsoby. Ve svém kódu můžete použít libovolnou metodu, která je pro vás nejvhodnější.

Hry Jak zachytit a streamovat vaši herní relaci v systému Linux
Jak zachytit a streamovat vaši herní relaci v systému Linux
V minulosti bylo hraní her považováno pouze za koníček, ale postupem času došlo v herním průmyslu k obrovskému nárůstu z hlediska technologie a počtu ...
Hry Nejlepší hry pro ruční sledování
Nejlepší hry pro ruční sledování
Oculus Quest nedávno představil skvělou myšlenku ručního sledování bez ovladačů. S neustále se zvyšujícím počtem her a aktivit, které provádějí podpor...
Hry Jak zobrazit překrytí OSD v linuxových aplikacích a hrách na celou obrazovku
Jak zobrazit překrytí OSD v linuxových aplikacích a hrách na celou obrazovku
Hraní her na celou obrazovku nebo používání aplikací v režimu celé obrazovky bez rozptýlení vás mohou odříznout od příslušných systémových informací v...