Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторная работа2 / abba
.c#include "abba.h"
int isabba(char* s)
{
int beg = 0; // начало слова
int end = strlen(s) - 1; // конец слова
while (beg < end)
if (s[beg++] != s[end--])
return 0; // не палиндром
return 1; // палиндром
}
int testline(char* line)
{
char str[512]="";
strcpy(str,line);
char* del = " ,.?!:-;+*=/<>(){}[]\n\t";// разделители слов
char* word = strtok(str, del); // выделяем первое слово в строке
// цикл обработки слов в строке
while(word)
{
if(isabba(word)) // если слово - палиндром
{
return 1;
}
word = strtok(NULL, del); // выделяем следующее слово в строке
}
return 0;
};
int testfile(char* inp,char* outp)
{
FILE *in,*out;
if(inp)
{
in = fopen(inp,"r");
if(in==0)
{
printf("Ошибка не могу открыть файл %s\n",inp);
return 1;
}
}
else
in=stdin;
if(outp)
{
out = fopen(outp,"w");
if(out==0)
{
printf("Ошибка - не могу создать-открыть файл %s\n",outp);
return 2;
}
}
else
out=stdout;
char line[512];
char ch;
while(fgets(line,sizeof(line),in)!=0)
{
if(testline(line)!=0) ch='+';
else ch='-';
fputc(ch,out);
fputs(line,out);
}
if(in) fclose(in);
if(out) fclose(out);
return 0;
};