İki Yazıyı Karşılaştıran Fonksiyon (strcmp)
Bu programda standart strcmp fonksiyonu mstrcmp ismiyle yazılıyor.
int mstrcmp(const char *, const char*);
Fonksiyon karşılaştırması yapılacak yazıların başlangıç adreslerini alıyor. Eğer birinci yazı ikinci yazıdan büyükse fonksiyon 0'dan büyük bir değere geri dönüyor. Eğer birinci yazı ikinci yazıdan küçükse fonksiyon 0'dan küçük bir değere geri dönüyor. Eğer iki yazı eşit ise fonksiyon 0 değerine geri dönüyor.
birinci yaziyi girin : muzaffer
ikinci yaziyi girin : salih
(muzaffer) < (salih)
#include <stdio.h> #define ARRAY_SIZE 100 int mstrcmp(const char *str1, const char *str2) { while (*str1 == *str2) { if (*str1 == '\0') return 0; str1++; str2++; } return *str1 - *str2; } int main() { char s1[ARRAY_SIZE]; char s2[ARRAY_SIZE]; int cmp_result; printf("birinci yaziyi girin : "); gets(s1); printf("ikinci yaziyi girin : "); gets(s2); cmp_result = mstrcmp(s1, s2); if (cmp_result > 0) printf("(%s) > (%s)\n", s1, s2); else if (cmp_result < 0) printf("(%s) < (%s)\n", s1, s2); else printf("(%s) = (%s)\n", s1, s2); return 0; }
