3 Şubat 2016 Çarşamba

strcmp Fonksiyonu

C strcmp Fonksiyonu

strcmp fonksiyonu ilk parametresinde verilen adresdeki
yazı ile ikinci parametresinde verilen adresdeki yazıyı
karşılaştırılır. Eğer ilk yazı afabetik sırada önce geliyorsa
sıfırdan küçük değer, ilk yazı alfabetik sırada sonra geliyorsa
sıfırdan büyük değer geri döndürür. İki yazı da birbirine
eşitse sıfır geri döner. Yazıların biri büyük harf ise
diğerininde büyük harf olmasına dikkat edilmelidir.


/*strcmp fonksiyonu ilk parametresinde verilen adresdeki
yazı ile ikinci parametresinde verilen adresdeki yazıyı
karşılaştırılır. Eğer ilk yazı afabetik sırada önce geliyorsa
sıfırdan küçük değer, ilk yazı alfabetik sırada sonra geliyorsa
sıfırdan büyük değer geri döndürür. İki yazı da birbirine
eşitse sıfır geri döner. Yazıların biri büyük harf ise
diğerininde büyük harf olmasına dikkat edilmelidir.*/

#include <stdio.h>
#include <stdlib.h>

int myStrcmp(const char *s1, const char *s2)
{
            int retValue = 0;
            //yazılardaki karakterler eşit olduğu sürece döner.
            while( *s1 == *s2 )
            {
                        if(*s1 == '\0')
                        {
                                    // '\0' karakterine gelmesi ikisinin eşit olması
                                    retValue = 0;
                                    break;
                        }
                        ++s1;
                        ++s2;
            }
            // karakterler farklı olunca döngüden çıkar.
            // iki karakterin farkı ile geri döner.
            retValue = *s1 - *s2;

            return retValue;
}

int main(void) {
            //strcmp fonsiyonu
            //int strcmp(const char *s1, const char *s2);
            // s1 > s2 pozitif bir değer
            // s1 < s2 negatif bir değer
            // s1 = s2 sıfır değeri döndürüyo
            {
                        char city1[] = "ANKARA";
                        char city2[] = "ANKARA";

                        int compare = strcmp(city1, city2);
                        printf("compare = %d\n", compare);
            }

            //kendi fonksiyonumuz
            {
                        char city1[] = "ankara";
                        char city2[] = "ankara";

                        int compare = myStrcmp(city1, city2);
                        printf("compare = %d\n", compare);
            }
            //şifre girişi
            {
                        char str[100];
                        char password[] = "fikret";
                        int cmp = -1;

                        printf("Sifre Giriniz : ");
                        gets(str);

                        cmp = myStrcmp(password, str);
                        if( 0 == cmp )
                        {
                                    printf("Giris sifreniz dogru\n");
                        }
                        else
                        {
                                    printf("Giris sifreniz yanlis\n");
                        }
            }
            return EXIT_SUCCESS;
}


Hiç yorum yok:

Yorum Gönder