V príklade uvedenom vyššie dĺžka reťazca str je 6.
V tomto návode si najskôr ukážeme, ako používať a používateľom definovaná funkcia vypočítať dĺžku reťazca a potom vám ukážeme vstavanú funkciu knižnice strlen (). Ukážeme vám tiež použitie veľkosť operátor pre reťazcové literály.
Dĺžka reťazca pomocou funkcie definované používateľom
Môžete napísať používateľom definovanú funkciu, ktorá vráti počet znakov v reťazci.
// Príklad1.c#include
int stringLength (char * str)
int i = 0;
while (str [i] != '\ 0') i ++;
návrat i;
int main ()
char str [30] = "STRING";
printf ("Dĺžka reťazca str je =>% d \ n", stringLength (str));
návrat 0;
Tu iterujeme cyklus while z i = 0 kým sa nestretneme s „\ 0“ znak. Hodnota i sa zvyšuje o 1 v každej iterácii cyklu while. Keď slučka končí, hodnota i je dĺžka šnúrky.
Dĺžka reťazca pomocou funkcie vstavanej knižnice
Zabudovaná funkcia knižnice strlen () možno tiež použiť na určenie dĺžky reťazca.
funkcia strlen ():
Hlavičkový súbor:
struna.hSyntax:
size_t strlen (const char * str)Argument: Táto funkcia prevezme argument ukazovateľa typu na char.
Návratová hodnota: Táto funkcia vráti dĺžku reťazca str. Poznač si to size_t je len alias celého čísla bez znamienka.
// Príklad2.c#include
#include
int main ()
char str1 [30] = "STRINGOVÉ POLE";
char * str2;
char * str3;
str2 = str1;
str3 = "STRING POINTER";
printf ("Dĺžka reťazca str1 je =>% ld \ n", strlen (str1));
printf ("Dĺžka reťazca str2 je =>% ld \ n", strlen (str2));
printf ("Dĺžka reťazca str3 je =>% ld \ n", strlen (str3));
printf ("Dĺžka reťazca" STRING LITERALS "je =>% ld \ n", strlen ("STRING LITERALS"));
návrat 0;
Tu odovzdáme funkcii strlen pole reťazcov, ukazovateľ reťazca a reťazcový literál a funkcia vráti dĺžku reťazca.
Dĺžka reťazca pomocou operátora sizeof
Môžeme tiež použiť veľkosť operátor pre dĺžku reťazca (iba pre reťazcový literál). Musíme ale odpočítať 1 od hodnoty vrátenej týmto operátorom, pretože sa tiež počíta znak '\ 0'. Pre pole a ukazovateľ vráti operátor sizeof pridelenú veľkosť poľa a ukazovateľa.
// Príklad3.c#include
int main ()
char str1 [30] = "STRING";
char * str2 = str1;
printf ("Dĺžka" STRING "je =>% d \ n", (sizeof ("STRING") - 1));
printf ("Pridelená veľkosť poľa str1 je =>% d \ n", veľkosť (str1));
printf ("Veľkosť ukazovateľa str2 je =>% d \ n", sizeof (str2));
návrat 0;
Tu v riadku č. 9 odovzdáme reťazcový literál „STRING“ a dostaneme veľkosť vrátane znaku „\ 0“. Odčítame teda 1 a dostaneme skutočnú veľkosť reťazca.
Keď odovzdáme pole operátoru sizeof, vráti pridelenú veľkosť poľa, ktorá je 30, a pri odovzdávaní znakového ukazovateľa vráti veľkosť ukazovateľa.
Záver
V tomto tutoriáli sme vám teda ukázali, ako sa dá dĺžka reťazca vypočítať rôznymi spôsobmi. Vo svojom kóde môžete použiť ľubovoľnú metódu, ktorá je pre vás najvhodnejšia.