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