Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*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 :
- int palindrom (char *) ;
- Funkcija nista ne ispisuje vec vraca rezultat provjere (kao sto se vidi iz prototipa). Razlike velikih i malih slova se ignorisu.*/
- #include <stdio.h>
- #include <ctype.h>
- int strlen(char*);
- void read(char*);
- void copydown(char*, char*);
- void copyrev(char*, char*);
- int check(char*, char*);
- int main(int argc, char **argv)
- {
- char str1[255], str2[255], str3[255];
- read(str1);
- copydown(str1, str2);
- copyrev(str2, str3);
- //puts(str1);puts(str2);puts(str3); //<--koristeno samo za testiranje
- if (check(str2, str3))
- printf("%s je palindrom.\n", str1);
- else
- printf("%s nije palindrom.\n", str1);
- return 0;
- }
- //funkcija vraca duzinu ucitanog stringa... postoji i gotova funkcija u string.h, ali... :)
- int strlen(char *str){
- int len=0;
- for (; str[len]!='\0'; len++);
- return len;
- }
- //ucitavanje stringa
- void read(char *str1){
- gets(str1);
- }
- //pretvaranje svih slova u mala (u zadatku je navedeno da se ignorisu razlike izmedju velikih i malih slova)
- void copydown(char *str1, char *str2){
- int i;
- for (i=0; i<=strlen(str1); i++)
- str2[i]=str1[i];
- for (i=0; i<strlen(str2); i++)
- if (isupper(str2[i]))
- str2[i]=tolower(str2[i]);
- }
- //kopiranje stringa unazad
- void copyrev(char *str2, char *str3){
- int i, j;
- for (i=0, j=strlen(str2)-1; j>=0; i++, j--)
- str3[i]=str2[j];
- str3[i]='\0';
- }
- //provjera "palindromnosti"
- int check(char *str2, char *str3){
- int i;
- for (i=0; i<strlen(str2); i++)
- if (str2[i]!=str3[i]) return 0;
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement