如何为char(char数组)应用find_first_of函数。我知道它可以为一个字符串完成但我想知道如何在我只能声明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'必须有class \ struct \ union”;
编译器强调if(**str**[10]...)
中的单词“str” - &gt;表达式必须具有类类型。
答案 0 :(得分:0)
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)) {
// ....
}