У меня есть массив из символов: char cif[] = { '0','1','2','3','4','5','6','7','8','9', ',','.', '/', ';'};
Также есть строка string s = "abcd123";
Мне нужно узнать есть ли в строке s элементы из массива cif
for (int i = 0; i < s.size(); i++) {
if (s[i] == cif)
{
/.........../
}
}
строка в c++ - это массив символов типа char.
char cif[] = { '0','1','2','3','4','5','6','7','8','9', ',','.', '/',';'};
char s[]="abcd123";
for (int i=0, i<14, i++) {
for (int j=0, j<7, j++) {
if (s[j]==ciff[i]) {
cout << "Yes " << s[j] << endl;
}
}
}
Тебе нужно два цикла, первый - идет по массиву символов, второй - по массиву строки, в зависимости от того какая у тебя строка - вместо 7 ставь либо n (если строка из n символов) или другое число, если оно заранее известно.
Если ваш s
- это std::string
, то ответ на вопрос дается простым
bool yes = s.find_first_of(cif, 0, sizeof cif) != s.npos;
А если вы оформите ваш cif
в виде нуль-терминированной строки
char cif[] = { '0','1','2','3','4','5','6','7','8','9',',','.','/',';','\0'};
// или просто
char cif[] = "0123456789,./;";
// или
const char *cif = "0123456789,./;";
то можно будет записать и чуть короче
bool yes = s.find_first_of(cif) != s.npos;
size_t pos = s.find_first_of("0123456789,./;");
if (pos != s.npos)
cout << "найден символ " << s[pos] << '\n';
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Суть данной функции, дописывать в определенную строку вводимые данныеСтрока разделена разделителем "=" на две подстроки: первая - это два...
Недавно начал изучать с++И в процессе возник вопрос, а именно о том чем nullptr отличается от NULL?
Если я ещё не надоел, то в качестве тренировки мозгов предлагаю подумать над задачейВообще, я искренне верю, что любые, даже столь маленькие...