Advertisement
ebx

Palindrom

ebx
Jul 28th, 2011
609
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.72 KB | None | 0 0
  1. /*Napisati funkciju koja kao argument prima neki string (niz znakova) i provjerava da li je to palindrom. Palindrom je string koji se isto cita slijeva udesno i zdesna ulijevo. Prototip trazene funkcije je :
  2. int palindrom (char *) ;
  3. Funkcija nista ne ispisuje vec vraca rezultat provjere (kao sto se vidi iz prototipa). Razlike velikih i malih slova se ignorisu.*/
  4.  
  5. #include <stdio.h>
  6. #include <ctype.h>
  7.  
  8. int strlen(char*);
  9. void read(char*);
  10. void copydown(char*, char*);
  11. void copyrev(char*, char*);
  12. int check(char*, char*);
  13.  
  14. int main(int argc, char **argv)
  15. {
  16.     char str1[255], str2[255], str3[255];
  17.    
  18.     read(str1);
  19.     copydown(str1, str2);
  20.     copyrev(str2, str3);
  21.    
  22.     //puts(str1);puts(str2);puts(str3); //<--koristeno samo za testiranje
  23.        
  24.     if (check(str2, str3))
  25.         printf("%s je palindrom.\n", str1);
  26.     else
  27.         printf("%s nije palindrom.\n", str1);
  28.     return 0;
  29. }
  30. //funkcija vraca duzinu ucitanog stringa... postoji i gotova funkcija u string.h, ali... :)
  31. int strlen(char *str){
  32.     int len=0;
  33.     for (; str[len]!='\0'; len++);
  34.     return len;
  35.     }
  36. //ucitavanje stringa
  37. void read(char *str1){
  38.     gets(str1);
  39.     }
  40. //pretvaranje svih slova u mala (u zadatku je navedeno da se ignorisu razlike izmedju velikih i malih slova)   
  41. void copydown(char *str1, char *str2){
  42.     int i;
  43.     for (i=0; i<=strlen(str1); i++)
  44.         str2[i]=str1[i];
  45.     for (i=0; i<strlen(str2); i++)
  46.         if (isupper(str2[i]))
  47.             str2[i]=tolower(str2[i]);
  48.     }
  49. //kopiranje stringa unazad
  50. void copyrev(char *str2, char *str3){
  51.     int i, j;
  52.     for (i=0, j=strlen(str2)-1; j>=0; i++, j--)
  53.         str3[i]=str2[j];
  54.         str3[i]='\0';
  55.     }
  56. //provjera "palindromnosti"
  57. int check(char *str2, char *str3){
  58.     int i;
  59.     for (i=0; i<strlen(str2); i++)
  60.         if (str2[i]!=str3[i]) return 0;
  61.     return 1;
  62.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement