例如,通过使用strchr()函数:
#include <stdio.h>
#include <string.h>
int main(void)
{
char str[] = "Hi, I'm odd!";
int exclamationCheck = 0;
if(strchr(str, '!') != NULL)
{
exclamationCheck = 1;
}
printf("exclamationCheck = %d\n", exclamationCheck);
return 0;
}
输出:
exclamationCheck = 1
如果你正在寻找简洁明了的一行代码,那么你可以采用 @melpomene 的方法:
int exclamationCheck = strchr(str, '!') != NULL;
如果不允许使用C String库中的方法,那么就像@SomeProgrammerDude建议的那样,您可以简单地遍历该字符串,并且如果任何字符是感叹号,就像在这个示例中所演示的那样:
#include <stdio.h>
int main(void)
{
char str[] = "Hi, I'm odd";
int exclamationCheck = 0;
for(int i = 0; str[i] != '\0'; ++i)
{
if(str[i] == '!')
{
exclamationCheck = 1;
break;
}
}
printf("exclamationCheck = %d\n", exclamationCheck);
return 0;
}
输出:
exclamationCheck = 0
请注意,如果找到至少一个感叹号,您可以中断循环,这样您就不需要遍历整个字符串。
附注:C和C ++中main()应该返回什么? 返回int
而不是void
。
strchr()
或strcspn()
函数。 - John Bollinger