Lungimea șirului în limbaj C.

String Length C Language



Un șir în limbajul C este o matrice de caractere care se termină cu un caracter nul ( 0). Lungimea șirului este numărul de caractere dintr-un șir. În lungimea șirului „ 0”, un caracter nu este numărat.







În exemplul prezentat mai sus, lungimea șirului str este 6.



În acest tutorial, mai întâi, vom arăta cum să utilizați un funcție definită de utilizator pentru a calcula lungimea unui șir și apoi vă vom arăta o funcție de bibliotecă încorporată strlen () . Vă arătăm, de asemenea, utilizările mărimea operator pentru literele șirului.



Lungimea șirului folosind funcția definită de utilizator

Puteți scrie o funcție definită de utilizator care returnează numărul de caractere dintr-un șir.





//Exemplu1.c
#include

intstringLength(char *str)
{
inteu=0;

in timp ce(str[eu] ! = ' 0')eu++;

întoarcereeu;
}

intprincipal()
{
charstr[30]= 'ŞIR';

printf ('Lungimea șirului str este =>% d n',stringLength(str));

întoarcere 0;
}

Aici, iterăm bucla while de la i = 0 până când nu întâlnim „ 0” caracter. Valoarea a eu este mărită cu 1 în fiecare iterație a buclei while. Când bucla se termină, valoarea lui eu este lungimea șirului.



Lungimea șirului folosind funcția de bibliotecă încorporată

Funcția de bibliotecă încorporată strlen () poate fi, de asemenea, utilizat pentru a determina lungimea șirului.

funcția strlen ():

Fișier antet:

şir.h

Sintaxă:

mărime_t strlen (const char *str)

Argument: Această funcție ia un argument de tip pointer la char.

Valoare returnată: Această funcție returnează lungimea șirului str . Rețineți că mărime_t este doar un alias al unui număr întreg nesemnat.

//Exemplu2.c
#include
#include

intprincipal()
{
charstr1[30]=„STRING ARRAY”;
char *str2;
char *str3;

str2=str1;
str3= „STRIN POINTER”;

printf ('Lungimea șirului str1 este =>% ld n', strlen (str1));
printf ('Lungimea șirului str2 este =>% ld n', strlen (str2));
printf ('Lungimea șirului str3 este =>% ld n', strlen (str3));
printf („Lungimea șirului”LITERALE DE STRING'este =>% ld n', strlen („STRING LITERALS”));

întoarcere 0;
}

Aici, trecem matricea de șiruri, pointerul șirului și literalul șir la funcția strlen, iar funcția returnează lungimea șirului.

Lungimea șirului Utilizând dimensiunea operatorului

De asemenea, putem folosi mărimea operator pentru lungimea șirului (numai pentru literalul șirului). Dar trebuie să scădem 1 din valoarea returnată de acest operator, deoarece contează și caracterul „ 0”. Pentru tablou și pointer, operatorul sizeof returnează dimensiunea alocată a tabloului și respectiv a indicatorului.

//Exemplu3.c
#include

intprincipal()
{
charstr1[30] = 'ŞIR';
char *str2=str1;

printf ('Lungimea 'ŞIR'este =>% d n',(mărimea('ŞIR') - 1));
printf ('Dimensiunea alocată a matricei str1 este =>% d n',mărimea(str1));
printf ('Dimensiunea indicatorului str2 este =>% d n',mărimea(str2));

întoarcere 0;
}

Aici, în Linia nr. 9, trecem șirul literal STRING și obținem dimensiunea, inclusiv caracterul „ 0”. Deci, scădem 1 și obținem dimensiunea reală a șirului.

Când trecem un tablou operatorului sizeof, acesta returnează dimensiunea alocată a tabloului, care este 30, iar la trecerea unui pointer de caractere, returnează dimensiunea pointerului.

Concluzie

Deci, în acest tutorial, v-am arătat cum poate fi calculată lungimea șirului în diferite moduri. Puteți utiliza în cod orice metodă este cea mai potrivită pentru dvs.