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