File: Stare vježbe/vjezbe09/57__strcmp.c

  1. /*
  2.   57__strcmp.c
  3.   Primjeri implementacije funkcije strcmp.
  4.   -----
  5.   Prototip: int strcmp(char *s, char *t);
  6.   Ponasanje funkcije strcmp definirano je na slijedeci nacin:
  7.   strcmp(s, t) vraca:
  8.   < 0 akko je s < t,
  9.   0 akko je s == t,
  10.   > 0 akko je s > t.
  11.   Pri tome < oznacava standardni leksikografski uredjaj.
  12. */
  13.  
  14. #include <stdio.h>
  15.  
  16. #define MAX 50
  17.  
  18. int strcmp1(char *s, char *t) {
  19. int i;
  20. for (i = 0; s[i] == t[i]; i++)
  21. if (s[i] == '\0')
  22. return 0;
  23. return s[i] - t[i];
  24. }
  25.  
  26. int strcmp2(char *s, char *t) {
  27. for (; *s == *t; s++, t++)
  28. if (!*s)
  29. return 0;
  30. return *s - *t;
  31. }
  32.  
  33. int main() {
  34. char s1[MAX], s2[MAX];
  35.  
  36. gets(s1);
  37. gets(s2);
  38. printf("\ns1: %s s2: %s\n", s1, s2);
  39. printf("strcmp1(s1, s2): %d\n", strcmp1(s1, s2));
  40. printf("strcmp2(s1, s2): %d\n", strcmp2(s1, s2));
  41.  
  42. return 0;
  43. }
  44.  
  45.