Исключение определенных символов пунктуации из возврата ispunct() в C

#c

#c

Вопрос:

Я создаю программу на C, которая определяет количество предложений в строке путем поиска знаков препинания. Я использую ispunct() для поиска знаков препинания. Однако это не просто возвращает количество точек, вопросительных и восклицательных знаков, как я хочу. Он также возвращает запятые и любой другой символ, который не является буквенно-цифровым. Итак, это предложение:

«Привет! Я использую имена Peter, Iscreamyay, nerdinuity и GameProgrammerGalaxy «.

Согласно программе, в ней должно быть ШЕСТЬ предложений!

Мне было интересно, есть ли способ исключить определенные символы пунктуации из возврата в ispunct() Вот раздел кода, который находит это в настоящее время:

 int main(void){
char text[100];
int letterNum = 0;
int wordNum = 0;
int sentenceNum = 0;
printf("Text: ");
scanf("%[^n]%*c", text);
for(int i = 0; i < strlen(text); i  ){
    if(isalpha(text[i])){
        letterNum  ;
    }
    if(isspace(text[i])){
        wordNum  ;
    }
    if(ispunct(text[i])){
        sentenceNum  ;
    }
  

Комментарии:

1. Если вы хотите проверить фиксированный набор значений, используйте strchr

2. Проще всего просто использовать поиск в таблице для символов, которые вы хотите распознать.

3. man strchr

4. Спасибо, ребята! На самом деле я уже нашел ответ на этот вопрос. Это много значило, что вы, ребята, так быстро ответили на этот вопрос!