Długość ciągu w języku C

String Length C Language



Ciąg znaków w języku C to tablica znaków zakończona znakiem null (). Długość ciągu to liczba znaków w ciągu. W długości ciągu „” znak nie jest liczony.







W powyższym przykładzie długość sznurka P to 6.



W tym samouczku najpierw pokażemy, jak używać a funkcja zdefiniowana przez użytkownika aby obliczyć długość ciągu, a następnie pokażemy Ci wbudowaną funkcję biblioteczną strlen() . Pokazujemy również zastosowania rozmiar operator dla literałów łańcuchowych.



Długość ciągu przy użyciu funkcji zdefiniowanej przez użytkownika

Możesz napisać funkcję zdefiniowaną przez użytkownika, która zwraca liczbę znaków w ciągu.





//Przykład1.c
#włączać

intDługość łańcucha(zwęglać *P)
{
inti=0;

podczas(P[i] ! = ' 0')i++;

powróti;
}

intGłówny()
{
zwęglaćP[30]= 'STRUNOWY';

printf ('Długość ciągu znaków wynosi => %d ',Długość łańcucha(P));

powrót 0;
}

Tutaj iterujemy pętlę while od ja = 0 dopóki nie napotkamy „ 0” postać. Wartość i zwiększa się o 1 w każdej iteracji pętli while. Gdy pętla się kończy, wartość i to długość ciągu.



Długość ciągu przy użyciu wbudowanej funkcji biblioteki

Wbudowana funkcja biblioteki strlen() może być również użyty do określenia długości struny.

funkcja strlen():

Plik nagłówkowy:

strunowy.h

Składnia:

rozmiar_t strlen (stały zwęglać *P)

Argument: Ta funkcja przyjmuje argument wskaźnika typu do char.

Wartość zwrotu: Ta funkcja zwraca długość ciągu P . Zauważ, że rozmiar_t jest tylko aliasem liczby całkowitej bez znaku.

//Przykład2.c
#włączać
#włączać

intGłówny()
{
zwęglaćstr1[30]=„TABLICA ŁAŃCUCHOWA”;
zwęglać *str2;
zwęglać *str3;

str2=str1;
str3= „WSKAŹNIK ŁAŃCUCHA”;

printf ('Długość ciągu str1 wynosi => %ld ', strlen (str1));
printf ('Długość ciągu str2 wynosi => %ld ', strlen (str2));
printf ('Długość ciągu str3 to => %ld ', strlen (str3));
printf ('Długość sznurka'LITERAŁÓW STRINGOWYCH' jest => %ld ', strlen („LITERAŁÓW STRINGOWYCH”));

powrót 0;
}

Tutaj przekazujemy tablicę ciągów, wskaźnik ciągu i literał ciągu do funkcji strlen, a funkcja zwraca długość ciągu.

Długość ciągu Używając sizeof Operator

Możemy również użyć rozmiar operator długości łańcucha (tylko dla literału łańcucha). Ale musimy odjąć 1 od wartości zwracanej przez ten operator, ponieważ liczy on również znak „”. W przypadku tablicy i wskaźnika operator sizeof zwraca odpowiednio przydzielony rozmiar tablicy i wskaźnika.

//Przykład3.c
#włączać

intGłówny()
{
zwęglaćstr1[30] = 'STRUNOWY';
zwęglać *str2=str1;

printf ('Długość 'STRUNOWY' to => %d ',(rozmiar('STRUNOWY') - 1));
printf ('Przydzielony rozmiar tablicy str1 to => %d ',rozmiar(str1));
printf ('Rozmiar wskaźnika str2 to => %d ',rozmiar(str2));

powrót 0;
}

Tutaj, w wierszu nr 9, przekazujemy literał ciągu STRING i otrzymujemy rozmiar, łącznie ze znakiem „”. Odejmujemy więc 1 i otrzymujemy rzeczywisty rozmiar łańcucha.

Kiedy przekazujemy tablicę do operatora sizeof, zwraca on przydzielony rozmiar tablicy, który wynosi 30, a przy przekazywaniu wskaźnika znakowego zwraca rozmiar wskaźnika.

Wniosek

W tym samouczku pokazaliśmy, jak można obliczyć długość sznurka na różne sposoby. Możesz użyć w swoim kodzie dowolnej metody, która najbardziej Ci odpowiada.