Используя 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, то как @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
Обратите внимание, что вы можете разорвать цикл, когда найден хотя бы один восклицательный знак, так что вам не нужно перебирать всю строку.
PS: Что должно возвращать main () в C и C ++? int
, а не void
.