strncmp Fonksiyonu
strncmp fonksiyonu iki yazının belirli sayıda karakterden oluşan kısımlarını karşılaştırır:
int strncmp(const char *s1, const char *s2, size_t n);
Birinci yazının ilk n karakteri ikinci yazının ilk n karakterine eşitse fonksiyon pozitif bir değere geri döner. Birinci yazının ilk n karakteri ikinci yazının ilk n karakterinden büyükse fonksiyon pozitif bir değere, küçükse negatif bir degere geri döner.
birinci yaziyi giriniz : ankara
ikinci yaziyi giriniz : antalya
iki yazinin kac karakteri karsilastirilacak? 3
(ankara) < (antalya)
#include <string.h> #include <stdio.h> #define SIZE 100 int mstrncmp(const char *s1, const char *s2, size_t n) { while (n--) { if (*s1 != *s2) return *(unsigned char *)s1 < *(unsigned char *)s2 ? -1 : 1; if (*s1 == '\0') return 0; s1++; s2++; } return 0; } int main() { char str1[SIZE]; char str2[SIZE]; int n; int result; printf("birinci yaziyi giriniz : "); gets(str1); printf("ikinci yaziyi giriniz : "); gets(str2); printf("iki yazinin kac karakteri karsilastirilacak? "); scanf("%d", &n); result = mstrncmp(str1, str2, n); if (result == 0) printf("(%s) == (%s)\n", str1, str2); else if (result > 0) printf("(%s) > (%s)\n", str1, str2); else printf("(%s) < (%s)\n", str1, str2); return 0; }
