Bildirim
int strncmp(const char *str1, const char *str2, size_t n);
Açıklama
Str1 parametresi ile gösterilen karakter dizisinin, n parametre değeri kadar ilk karakterini, str2 parametresi ile gösterilen karakter dizisi ile karşılaştırır. Eğer her iki karakter dizisindeki tüm karakterler aynı ise sıfır değeri, aksi takdirde sıfırdan farklı bir değer geri döndürür.
Fonksiyon str1 ve str2 parametreleri ile gösterilen karakter dizilerini ilk karakterden itibaren karşılaştırmaya başlar. Birbirlerine eşitse, karakterler farklı olana veya karakter dizisinin sonunu gösteren boş bir karakterle karşılaşana veya her iki karakter dizisinde n parametre değeri kadar eşleşene kadar karşılaştırma işlemine devam eder.
Parametreler
str1: Karşılaştırma yapılacak ilk karakter dizisinin başlangıcını gösteren bir işaretçidir.
str2: Karşılaştırma yapılacak ikinci karakter dizisinin başlangıcını gösteren bir işaretçidir.
n: Karşılaştırma yapılacak karakter sayısını gösterir.
Dönüş değeri
Dönüş değeri;
Örnek
#include <stdio.h>
#include <string.h>
int main(void)
{
const char *cp1 = "Bilgisayar";
const char *cp2 = "Bilgileri";
int ret;
ret = strncmp(cp1, cp2, 5);
if(ret<0) printf("cp1 karakter dizisi cp2 karakter dizisinden küçüktür!");
else if(ret>0) printf("cp2 karakter dizisi cp1 karakter dizisinden küçüktür!");
else printf("cp1 karakter dizisi cp2 karakter dizisine eşittir!");
return 0;
}
Yukarıdaki örnekte, program aşağıdaki satırı ekrana yazar.
cp1 karakter dizisi cp2 karakter dizisine eşittir!
Program strncmp() fonksiyonu ile iki karakter dizisinin ilk 5 karakterini karşılaştırarak elde ettiği sonucu ekrana yazar.
Kaynak kodu
Copyright Public domain
int strncmp(const char *str1, const char *str2, size_t n)
{
while(n--) {
if(*str1++!=*str2++)
return *str1 - *str2;
}
return 0;
}