BG MVC Model View Controller eğitim serisi yayında...

Ana sayfa > Programlama > C Programlama > C standart kütüphanesi > <string.h> > strncmp

strncmp() fonksiyonu

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;

  • <0 ise str1 bellek içeriği str2 bellek içeriğinden küçüktür.
  • >0 ise str2 bellek içeriği str1 bellek içeriğinden küçüktür.
  • =0 ise str1 bellek içeriği str2 bellek içeriğine eşittir.

Ö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;
}