3 Şubat 2016 Çarşamba

strncmp Fonksiyonu

C strncmp Fonksiyonu

strncmp fonksiyonu ilk parametresinde verilen adresdeki
yazı ile ikinci parametresinde verilen adresdeki yazının
n karakterini 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.
1.parametre : mehmet, ikinci parametre : mehtap üçüncü parametre:3
sonuc :0 çıkar. çünkü ilk 3 karakter aynı.


/*strncmp fonksiyonu ilk parametresinde verilen adresdeki
yazı ile ikinci parametresinde verilen adresdeki yazının
n karakterini 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.
1.parametre : mehmet, ikinci parametre : mehtap üçüncü parametre:3
sonuc :0 çıkar. çünkü ilk 3 karakter aynı.
Uygulamada : iki yazının belli karakter sayısı kadar karşılaştırılması
yapılmıştır. Aynı zamanda kendi strncmp fonksiyonumuzu nasıl kodlarız?
*/


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

int myStrncmp(const char *s1, const char *s2, unsigned int n)
{
            printf("myStrncmp fonksiyonu cagrildi\n");
            int retValue = 0;

            while(n--)
            {
                        if( *s1 != *s2 )
                        {
                                    retValue = *s1-*s2;
                                    break;
                        }
                        if( *s1 == '\0')
                        {
                                    retValue = 0;
                                    break;
                        }

                        ++s1;
                        ++s2;
            }

            return retValue;
}


int main(void) {
            //strncmp fonksiyonu
            // int strncmp(const char *s1, const char *s2, unsigned int n);
            {
                        char s1[100];
                        char s2[100];
                        unsigned int n = 0;
                        int cmpResult = 0;

                        printf("Birinci yaziyi giriniz:");
                        gets(s1);
                        printf("ikinci yaziyi giriniz:");
                        gets(s2);
                        printf("Karsilastirilacak karakter sayisi giriniz:");
                        scanf("%d", &n);

                        cmpResult = strncmp(s1, s2, n);

                        printf("Compare Result : %d\n", cmpResult);

                        return EXIT_SUCCESS;
            }
            //kendi fonksiyonumuz
            {
                        char s1[100];
                        char s2[100];
                        unsigned int n = 0;
                        int cmpResult = 0;

                        printf("Birinci yaziyi giriniz:");
                        gets(s1);
                        printf("ikinci yaziyi giriniz:");
                        gets(s2);
                        printf("Karsilastirilacak karakter sayisi giriniz:");
                        scanf("%d", &n);

                        cmpResult = myStrncmp(s1, s2, n);

                        printf("Compare Result : %d\n", cmpResult);

                        return EXIT_SUCCESS;
            }
}


Hiç yorum yok:

Yorum Gönder