#include <string.h> char* deleted(char *a) //гробит все пробелы и пунктуацию { int n=strlen(a); int t=0; //, p=0; //p не используется int i; for(/*int*/ i=0; i<n; i++) //помни! что объявление тут int i не гарантирует её удаление или сохранение по выходу из for{} { if(a[i]==' ' || a[i]==',' || a[i]=='.' ) { t=t+1; for (int j=i;j<n;j++) a[j]=a[j+1]; } } a[n-t]='\0'; for (/*int*/ i=0; i<n; i++) //50% - ошибка! при определении int i if(a[i]==' ' || a[i]==',' || a[i]=='.') t=1; if (t==1) return deleted(a); else return a; } int palindrom(char a[40]) { int p=0; char b[40]; for (int k=0; k<strlen(a); k++) b[k]=a[strlen(a)-k-1]; for (int f=0; f<strlen(a); f++) if(a[f] != b[f]) p=p+1; return p; } void functionB(char *psz) //принимает строку, сохраняет результат в неё-же { //обработка тстроки, выделенная в отдельную функцию for (int i = 0; psz[i] != '\0'; i++) if (psz[i] == '.' || psz[i] == '?' || psz[i] == '!') { int pos = i; while ((psz[pos] != ' ') && (pos >= 0)) pos--; for (int n = pos; psz[n] != '\0'; n++) psz[n] = psz[n+(i-pos)]; } } int funcC(char *st) { //функция с алгоритмом действия //st - строка для обработки, возвращает участок для вывода char *ptr, c; int i, j, k, len, cnt = 0; len = strlen(st); if(st[0] != 0 && st[0] != ' ') cnt = 1; for(i = 0; i < len && cnt < 2; ++i) if(st[i] == ' ' && st[i+1] != ' ') ++cnt; for(j = k = i; k < len; ++k) { c = st[k]; if(c != ' ') st[j++] = c; } st[j] = 0; return i; } |