Как проверить, существует ли какой-нибудь определённый символ в строке?
Например, узнать существует ли символ @ в введённой строке, и написать "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;
}
}