Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /var/www/vhosts/bilgigunlugum.net/httpdocs/index.php on line 43
C Programlama

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

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

strcmp() fonksiyonu

Bildirim

int strcmp(const char *str1, const char *str2);

Açıklama

Str1 parametresi ile gösterilen karakter dizisini 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 kadar karşılaştırma işlemine devam eder.

Eğer str1 ve str2 parametreleri boş karakter ile sonlandırılmış karakter dizilerini gösteren bir işaretçi değilse, anlamsız bir sonuç elde edilir.

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.

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 = strcmp(cp1, cp2);

    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.

cp2 karakter dizisi cp1 karakter dizisinden küçüktür!

Program strcmp() fonksiyonu ile iki karakter dizisini karşılaştırarak elde ettiği sonucu ekrana yazar.

Kaynak kodu

Copyright Public domain


int strcmp(const char *str1, const char *str2)
{
  while(*str1 && (*str1==*str2)) {
     str1++;
     str2++;
  }
  
  return *str1 - *str2;
}