我正在用 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++;
}