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