Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Да се направи програма која од влезната датотека „text.txt“ ќе ги одреди и отпечати сите зборови палиндроми во излезната датотека „print.txt“. Да се избегнуваат интерпукциските знаци точка (.) и запирка (,) и да не се прави разлика меѓу големи и мали букви.
- Забелешка: Да не се менуваат дадените функции writeToFile() и printFile(). Тие служат за креирање и проверка на потребните датотеки. */
- #include <stdio.h>
- #include <ctype.h>
- #include <string.h>
- void writeToFile() {
- FILE *f = fopen("text.txt", "w");
- char c;
- while((c = getchar()) != '#') {
- fputc(c, f);
- }
- fclose(f);
- }
- void printFile() {
- FILE *f=fopen("print.txt","r");
- char line[100];
- while(!feof(f)){
- fgets(line,100,f);
- if (feof(f))
- break;
- printf("%s",line);
- }
- fclose(f);
- }
- int main() {
- writeToFile();
- //Vasiot kod tuka
- int palindrom (char *x);
- FILE * fpinput;
- FILE * fpprint;
- fpinput = fopen("text.txt", "r");
- if(NULL == fpinput)
- {
- printf("GRESKA PRI OTVORANJE DATOTEKA");
- return -1;
- }
- fpprint = fopen("print.txt", "w");
- char zbor[100];
- while((fscanf(fpinput,"%s",zbor))!=EOF)
- {
- if(palindrom(zbor))
- fprintf(fpprint,"%s\n",zbor);
- }
- fclose(fpprint);
- fclose(fpinput);
- printFile();
- return 0;
- }
- int palindrom (char *x){
- int len = strlen(x);
- int i;
- for(i = 0; i < (len/2); i++)
- {
- if(x[len-1] == ',')
- {
- if(tolower(x[i])!=tolower(x[len-i-2]))
- return 0;
- }
- else
- {
- if(tolower(x[i])!=tolower(x[len-i-1]))
- return 0;
- }
- }
- if(x[len-1] == ',')
- {
- x[len-1] = '\0';
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement