Yukarıda gösterilen örnekte, dizenin uzunluğu cadde 6 yaşında.
Bu derste, ilk olarak, 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 dizedeki karakter sayısını döndüren kullanıcı tanımlı bir işlev yazabilirsiniz.
//Örnek 1.c#Dahil etmek
int stringLength(char *str)
int i=0;
while(str[i] != '\0') i++;
dönüş i;
int ana()
char str[30]= "STRING";
printf("str dizesinin uzunluğu => %d\n",stringLength(str));
0 döndür;
Burada while döngüsünü tekrarlıyoruz ben = 0 karşılaşmadığımız sürece '\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ğu.
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ı:
dize.hSözdizimi:
size_t strlen (const char *str)argüman: Bu işlev, karakter tipi işaretçisinin bir argümanını alır.
Geri dönüş değeri: Bu işlev, dizenin uzunluğunu döndürür cadde. Dikkat size_t sadece işaretsiz bir tamsayının takma adıdır.
//Örnek2.c#Dahil etmek
#Dahil etmek
int ana()
char str1[30]="STRING DİZİ";
karakter *str2;
karakter *str3;
str2 = str1;
str3 = "STRING İŞARETÇİ";
printf("str1 dizesinin uzunluğu => %ld\n",strlen(str1));
printf("str2 dizesinin uzunluğu => %ld\n",strlen(str2));
printf("str3 dizesinin uzunluğu => %ld\n",strlen(str3));
printf("STRING LITERALS" dizesinin uzunluğu => %ld\n",strlen("STRING LITERALS"));
0 döndür;
Burada, strlen işlevine dize dizisini, dize işaretçisini ve dize değişmez değerini 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, bu operatör tarafından döndürülen değerden 1 çıkarmamız gerekiyor, çünkü o aynı zamanda '\0' karakterini de sayar. Dizi ve işaretçi için, sizeof operatörü, sırasıyla dizinin ve işaretçinin tahsis edilen boyutunu döndürür.
//Örnek3.c#Dahil etmek
int ana()
char str1[30] = "STRING";
karakter *str2 =str1;
printf("STRING" uzunluğu => %d\n",(sizeof("STRING") - 1));
printf("str1 dizisinin ayrılan boyutu => %d\n",sizeof(str1));
printf("Str2 işaretçisinin boyutu => %d\n",sizeof(str2));
0 döndür;
Burada 9. Satırda “STRING” dizgesini geçiyoruz ve '\0' karakteri de dahil olmak üzere boyutu alıyoruz. Böylece, 1 çıkarırız ve dizenin gerçek boyutunu elde ederiz.
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.
Sonuç
Bu derste size string uzunluğunun çeşitli şekillerde nasıl hesaplanabileceğini gösterdik. Kodunuzda sizin için en uygun olan yöntemi kullanabilirsiniz.