#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. Спасибо, ребята! На самом деле я уже нашел ответ на этот вопрос. Это много значило, что вы, ребята, так быстро ответили на этот вопрос!