C ++: можно ли использовать функцию .find для поиска нескольких символов в строке
например: искать + и — в массиве линейных уравнений
Один из способов сделать это:
auto it = std::find_if( str.begin(), str.end(), [](char c){
return c == '+' || c == '-';
} );
https://en.cppreference.com/w/cpp/algorithm/find
Вы также можете использовать std :: strpbrk, который ищет один или несколько разделителей в строке.
https://en.cppreference.com/w/cpp/string/byte/strpbrk
В соответствии с вашим комментарием, вы хотите токенизировать строку, std :: strtok сделает работу:
char *token = std::strtok( input, "+-" );
while( token != nullptr )
{
token = std::strtok( NULL, "+-" );
}
https://en.cppreference.com/w/cpp/string/byte/strtok
Предупреждение: приведенный выше код не является потокобезопасным.
Других решений пока нет …