找到第一个char

时间:2014-11-16 01:42:56

标签: c++ arrays char find

如何为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;表达式必须具有类类型。

1 个答案:

答案 0 :(得分:0)

find_first_ofstring上的一种方法。您只能在该类型的对象上使用它:

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)) {
    // ....
}