Мне нужно быстро отфильтровать знаки препинания из строк UTF-8 в C. Строки могут быть длинными и их достаточно много. Функция, которую я сейчас использую, кажется очень неэффективной:
char *filter(char *mystring){
char *p;
while ((p = strchr(mystring,'.')) != NULL)
strcpy(p, p+1);
while ((p = strchr(mystring,',')) != NULL)
...etc etc etc...
...etc...
return mystring;
}
Как вы можете видеть, он перебирает строку для каждого знака препинания. Есть ли простая библиотечная функция, которая может эффективно выполнить это для всех знаков препинания?