Bildirim
size_t strcspn(const char *str1, const char *str2);
Açıklama
Str2 parametresi ile gösterilen karakter dizisinde yer alan karakterlerden herhangi birinin str1 parametresi ile gösterilen karakter dizisi içinde bulunduğu yerin endeks değerini geri döndürür. Bu değer karakterin ilk bulunduğu yerden önceki karakter sayısını gösterir. Farklı bir ifade ile, str1 parametresinin, str2 parametresi içinde olmayan karakterlerden oluşan, bölümünün uzunluğunu hesaplar.
Arama işlemi karakter dizilerini sonlandıran boş karakterleri de içerdiğinden, str2 parametresindeki karakterlerden hiçbiri str1 parametresinde bulunmazsa, fonksiyon str1 parametresinin uzunluğunu geri döndürür.
Str1 veya str2 parametresi boş bir karakterle sonlandırılmış bir karakter dizisini gösteren bir işaretçi değilse, sonuç belirsiz olabilir.
Parametreler
str1: Arama yapılacak karakter dizisinin başlangıcını gösteren bir işaretçidir.
str2: Aranacak karakterleri içeren karakter dizisinin başlangıcını gösteren bir işaretçidir.
Dönüş değeri
Str1 parametresinin, str2 parametresi içinde olmayan karakterlerden oluşan, bölümünün uzunluğunu geri döndürür.
Örnek
#include <stdio.h>
#include <string.h>
int main(void)
{
const char cdizi1[] = "Bilgisayar";
const char cdizi2[] = "esy";
int ret;
ret = strcspn(cdizi1, cdizi2);
printf("Bulunan karakterin indeks değeri: %d\n", ret);
return 0;
}
Yukarıdaki örnekte, program aşağıdaki satırı ekrana yazar.
Bulunan karakterin indeks değeri: 5
Program strcspn() fonksiyonu ile bir karakter dizisi içindeki karakterlerin herhangi birinin diğer karakter dizisi içinde bulunduğu ilk yerin endeksini hesaplayarak elde ettiği sonucu ekrana yazar.
Kaynak kodu
Copyright Public domain
size_t strcspn(const char *str1, const char *str2)
{
size_t ret=0;
while(*str1) {
if(strchr(str2, *str1))
return ret;
else {
str1++;
ret++;
}
}
return ret;
}