所以现在我正在尝试用 C 编写一个程序,它接受一个字符串并检查正确的标点符号(例如以'.'、'?' 或'!' 结尾)。我正在尝试使用 strchr 函数来测试并查看字符串中的最后一个字符是否是在 for 循环中使用 if 循环的标点符号之一。但是,当我运行程序时,它似乎一起跳过了 if 循环。
这是程序:
#include<stdio.h>
#include<string.h>
int main(void)
{
char string[1000];
int i,length,a,p,q,e;
printf("Please enter a sentence with a valid punctuation.\n\n");
for(i=0;i<1000;i++)
{
fgets(string,2,stdin);
p=strchr(string,'.');
q=strchr(string,'?');
e=strchr(string,'!');
if(string[sizeof(string)-1]=='.'||'?'||'!')
{
printf("\nYay a sentence!");
break;
}
else if((p && q && e)==NULL)
{
printf("You didn't provide any punctuation. Goodbye.");
exit(a);
}
}
printf("You entered the sentence:\n %s",string);
return 0;
}
我已经尝试了很多不同的方式,例如尝试 strstr ,甚至通过 get 以不同的方式存储它(我通过 gcc 很快了解到,一些研究不是要走的路。)
当我输入一个没有标点符号的句子时,我完全不知道为什么这不起作用。
抱歉,如果这真的很简单,我对此很陌生。
提前致谢。