Найти первый из символов

0

Как применить функцию 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]...) → выражение должно иметь тип класса.

  • 1
    используйте std::begin() и std::end() с std::find_first_of() .
  • 0
    Спасибо за ваш ответ. Как именно это написать? Я не знаю, где это должно быть размещено.
Показать ещё 1 комментарий
Теги:
arrays
find
char

1 ответ

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню