Как применить функцию find_first_of для char (char array). Я знаю, что это можно сделать для строки, но я хочу знать, как это сделать, когда я могу объявить только переменную типа char. Это не работает:
#include <iostream>
#include <string>
#include <Windows.h>
#include <complex>
using namespace std;
int main()
{
char str[10];
cin >> str;
if(str[10].find_first_of('z')!=string::npos)
{
cout << "nazwa: " << str[10] << endl;
}
return (0);
}
Ошибка: "find_first_of" должен иметь класс \struct\union "; Компилятор подчеркнул слово "str" в if(**str**[10]...)
→ выражение должно иметь тип класса.
find_first_of
- это метод в string
. Вы можете использовать его только на объекте такого типа:
std::string str
cin >> str;
if (str.find_first_of('z') != std::string::npos) {
// ....
}
Массив char
, служащий той же цели, не является строкой, поэтому ни ваш cin, ни ваша функция не работают. Чтобы использовать массив, вам нужно будет:
char str[10];
for (int i = 0; i < 10; ++i) {
cin >> str[i];
}
if (std::find(str, str + 10, 'z') != (str + 10)) {
// ....
}
std::begin()
иstd::end()
сstd::find_first_of()
.