массивы — c ++: можно ли использовать функцию .find для поиска нескольких элементов в строке

C ++: можно ли использовать функцию .find для поиска нескольких символов в строке
например: искать + и — в массиве линейных уравнений

-3

Решение

Один из способов сделать это:

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

Предупреждение: приведенный выше код не является потокобезопасным.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]