Как проверить, существует ли какой-нибудь определённый символ в строке?

Например, узнать существует ли символ @ в введённой строке, и написать "YES" или "NO"

#include <iostream> 
#include <string> 
#include <algorithm> 
using namespace std; 

int main() { 
    string stroka; 
    cin >> stroka; 
    if ((stroka.find('@')) < 20) 
        cout << "YES"; 
    else cout << "NO";

Ответы (3 шт):

Автор решения: Дон Влад

Попробуйте использовать в качестве сравнения в условии такое выражение string::npos, оно возвращается если метод find ничего не нашел

→ Ссылка
Автор решения: Mikhailo

Для string s -

if (s.find('@') != s.npos) // Символ есть

Для char s[] -

if(strchr(s,'@')) // Символ есть
→ Ссылка
Автор решения: Михаил Оргиш

Можно по-другому проверить есть ли символ в массиве: Допишите #include cstring - библиотека для string #include cstdlib - библиотека для массивов

SetCosoleCP(1251);
SetConSoleOutputCP(1251); // код кирилицы

string* arr[20];
cout << "Введите строку из 20ти символов без пробелов, или используйте _ вместо пробела " << endl;
for (int i = 0; i < 20; i++) {
    cin >> arr[i] ;
}
for (int i = 0; i < 20; i++) {
    cout << "/t" << arr;
}
char n;
cout << "Введите символ, который вы хотите проверить - ";
cin >> n;
for (int i = 0; i < 20; i++) {
    if (arr[i] == n)
    {
        cout << "true" << endl;
    }
    else
    {
        cout << "false" << endl;
    }
}

или ещё проще:

for(int i = 0; i< 20; i++){
    if(arr[i] == '@')
    {
        cout << "true" << endl;

    }
    else
    {
        cout << "false" << endl;

    }
}
→ Ссылка