C Dilinde Dize Uzunluğu

String Length C Language



C dilinde bir dize, boş karakterle () sonlandırılan bir karakter dizisidir. Dize uzunluğu, bir dizedeki karakter sayısıdır. '' dize uzunluğunda bir karakter sayılmaz.







Yukarıda gösterilen örnekte, dizenin uzunluğu P 6'dır.



Bu derste, önce, nasıl kullanılacağını göstereceğiz. kullanıcı tanımlı fonksiyon bir dizenin uzunluğunu hesaplamak için size yerleşik bir kitaplık işlevi göstereceğiz strlen() . kullanımlarını da gösteriyoruz. boyutu dize değişmezleri için operatör.



Kullanıcı Tanımlı İşlevi Kullanan Dizi Uzunluğu

Bir dizgedeki karakter sayısını döndüren kullanıcı tanımlı bir işlev yazabilirsiniz.





//Örnek1.c
#Dahil etmek

intIP uzunluğu(karakter *P)
{
intben=0;

süre(P[ben] ! = ' 0')ben++;

dönüşben;
}

intana()
{
karakterP[30]= 'SİCİM';

baskı ('str dizesinin uzunluğu => %d ',IP uzunluğu(P));

dönüş 0;
}

Burada while döngüsünü tekrarlıyoruz. ben = 0 karşılaşmadığımız zamana kadar ' 0' karakter. Değeri ben arttırılır 1 while döngüsünün her yinelemesinde. Döngü sona erdiğinde, değeri ben dizenin uzunluğudur.



Yerleşik Kitaplık İşlevini Kullanan Dize Uzunluğu

Yerleşik kitaplık işlevi strlen() dize uzunluğunu belirlemek için de kullanılabilir.

strlen() işlevi:

Başlık dosyası:

sicim.H

Sözdizimi:

size_t strlen (const karakter *P)

Argüman: Bu işlev, char için tür işaretçisinin bir argümanını alır.

Geri dönüş değeri: Bu işlev, dizenin uzunluğunu döndürür P . Bunu not et size_t yalnızca işaretsiz bir tamsayının takma adıdır.

//Örnek2.c
#Dahil etmek
#Dahil etmek

intana()
{
karakterstr1[30]='DİZGİ DİZİ';
karakter *str2;
karakter *str3;

str2=str1;
str3= 'DİZGİ İŞARETÇİ';

baskı ('str1 dizesinin uzunluğu => %ld ', strlen (str1));
baskı ('str2 dizesinin uzunluğu => %ld ', strlen (str2));
baskı ('str3 dizesinin uzunluğu => %ld ', strlen (str3));
baskı ('Dizenin uzunluğu'DİZİN GERÇEKLERİ' => %ld ', strlen ('DİZİN EDEBİYATI'));

dönüş 0;
}

Burada, strlen işlevine dize dizisini, dize işaretçisini ve dize değişmezini iletiriz ve işlev dizenin uzunluğunu döndürür.

Sizeof Operator Kullanan Dize Uzunluğu

Biz de kullanabiliriz boyutu dize uzunluğu operatörü (yalnızca dize değişmezi için). Ancak, '' karakterini de saydığı için bu operatörün döndürdüğü değerden 1 çıkarmamız gerekiyor. Dizi ve işaretçi için, sizeof operatörü, sırasıyla dizinin ve işaretçinin ayrılan boyutunu döndürür.

//Örnek3.c
#Dahil etmek

intana()
{
karakterstr1[30] = 'SİCİM';
karakter *str2=str1;

baskı ('Uzunluğu 'SİCİM' => %d ',(boyutu('SİCİM') - 1));
baskı ('str1 dizisinin ayrılan boyutu => %d ',boyutu(str1));
baskı ('Str2 işaretçisinin boyutu => %d ',boyutu(str2));

dönüş 0;
}

Burada, Satır no 9'da, literal STRING dizesini geçiyoruz ve '' karakteri de dahil olmak üzere boyutu alıyoruz. Böylece 1 çıkarırız ve dizenin gerçek boyutunu alırız.

Sizeof operatörüne bir dizi ilettiğimizde, dizinin tahsis edilen boyutu olan 30'u döndürür ve bir karakter işaretçisini geçerken işaretçinin boyutunu döndürür.

Çözüm

Bu derste size string uzunluğunun çeşitli şekillerde nasıl hesaplanabileceğini gösterdik. Sizin için en uygun olan yöntemi kodunuzda kullanabilirsiniz.