Сравнение символа и строки - C (СИ)

Формулировка задачи:

 #include <stdio.h>
# include <string.h>
# include <stdlib.h>
# include <conio.h>
# include <stdio.h>
# include <ctype.h>
 
int  main()
{
 int i, j, la, lb, ia,ib, n;
 char ch[]=".,!?;";
 char min, a[80], b[80];
 
//clrscr();
 printf("str A: ");
 gets(a);
 printf("\n");
 printf("str B: ");
 gets(b);
 
 la = strlen(a);
lb = strlen(b);
 
 ia = 0;   ib=0;    
 
 for (i=0; i<strlen(ch); i++)  
        {if (strchr(a, ch[i]) != 0)  
   ia = 1; }
   
   ib=0,   lb=strlen(b);
   
for (i=0; i<=lb-1; i++)
             { for (j=i+1; j<=lb; j++)
        if (b[i] == b[j]) ib = 1; }
 
 
 if ((ia == 1) && (ib == 0)) 
{
   
la=strlen(a);
 i=0;
for (i=0; i<=ib; i++)
    if (a[i]=ch ))      a[i++]=a[i];
    a[i]="\0";
    
     
    }  
  
  
printf("Obrabotannayastroka A: ");
puts(a);
getch();
}
как организовать удаление знаков препинания?
{
   
la=strlen(a);
 i=0;
for (i=0; i<=ib; i++)
    if (a[i]=ch ))      a[i++]=a[i];
    a[i]="\0";
    
     
    }

Код к задаче: «Сравнение символа и строки - C (СИ)»

textual
// ANSI C 99
 
#include <stdio.h>
#include <wchar.h>
#include <locale.h>
#include <assert.h>
 
#define KILL_CHARS L",.!?-:;"
 
int main(void) {
    wchar_t buf[BUFSIZ];
    
    assert( setlocale(LC_ALL, "ru_RU.UTF-8") );
    
    while ( printf("Строка: ") && fgetws(buf, BUFSIZ, stdin) && *buf != '\n' ) {
        for ( wchar_t * ptr = wcspbrk(buf, KILL_CHARS); ptr; ptr = wcspbrk(ptr, KILL_CHARS) )
            wmemmove(ptr, ptr + 1, wcslen(ptr));
        printf("Без байды: %ls", buf);
    }
    
    return 0;
}

13   голосов, оценка 4.000 из 5


СОХРАНИТЬ ССЫЛКУ