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 remblank(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);
- remblank(str2, str1);
- copyrev(str1, str3);
- if (check(str1, str3))
- printf("Palindrom!\n");
- else
- printf("Nije palindrom!\n");
- 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){
- fgets(str1, 255, stdin);
- }
- //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]);
- }
- //brisanje svih razmaka i interpunkcijskih znakova
- void remblank(char *str2, char *str1){
- int i, j;
- for (i=0, j=0; i<strlen(str2); i++){
- if (isspace(str2[i]) || ispunct(str2[i])) continue;
- else
- str1[j]=str2[i], j++;
- }
- str1[j]='\0';
- }
- //kopiranje stringa unazad
- void copyrev(char *str1, char *str3){
- int i, j;
- for (i=0, j=strlen(str1)-1; j>=0; i++, j--)
- str3[i]=str1[j];
- str3[i]='\0';
- }
- //provjera "palindromnosti"
- int check(char *str1, char *str3){
- int i;
- for (i=0; i<strlen(str1); i++)
- if (str1[i]!=str3[i]) return 0;
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement