Найти в Дзене
Владимир Носков

С/С++. Функция получения позиции строки в подстроке.

С/С++ В string.h стандартной библиотеки строковых функций С/С++ нет функции, возвращающей значение позиции начала вхождения, подстроки в строке. Например:
"Здравствуйте, мои дорогие, пишу вам очередное письмо" в строке найти позицию вхождения слова "пишу". В php есть strpos и она может выдать точку вхождения подстроки:
strpos("Здравствуйте, мои дорогие, пишу вам очередное письмо", "пишу");, которая вернёт первую позицию вхождения слова "пишу", соответствующее позиции буквы "п" это 26. Тогда наваяем и для С/С++ и аж четыре функции: strpos - возврат позиции начала вхождения подстроки
strendpos - позиция конца вхождения подстроки. тут то бы и не надо ибо комбинация strpos + strlen именно это и делает, но вот их и поместим в strendpos. и варианты этих же функций, но для wchar, то есть для unicode. wstrpos - возврат позиции начала вхождения подстроки
wstrendpos - позиция конца вхождения подстроки. Аргументы функций одинаковые. w* - соотв имеют на вход строки с L"текст". Пример использова

С/С++

В string.h стандартной библиотеки строковых функций С/С++ нет функции, возвращающей значение позиции начала вхождения, подстроки в строке.

Например:
"Здравствуйте, мои дорогие, пишу вам очередное письмо" в строке найти позицию вхождения слова "пишу". В php есть strpos и она может выдать точку вхождения подстроки:
strpos("Здравствуйте, мои дорогие, пишу вам очередное письмо", "пишу");, которая вернёт первую позицию вхождения слова "пишу", соответствующее позиции буквы "п" это 26.

Тогда наваяем и для С/С++ и аж четыре функции:

strpos - возврат позиции начала вхождения подстроки
strendpos - позиция конца вхождения подстроки.

тут то бы и не надо ибо комбинация strpos + strlen именно это и делает, но вот их и поместим в strendpos.

и варианты этих же функций, но для wchar, то есть для unicode.

wstrpos - возврат позиции начала вхождения подстроки
wstrendpos - позиция конца вхождения подстроки.

Аргументы функций одинаковые. w* - соотв имеют на вход строки с L"текст".

Пример использования функций:

dzen (ну как так-то?) больше не разрешает встраивать gists, а на свой редактор с сохранением расцветовки и форматирования текстов как-то они уже который год не могут сподобиться или и не собираются...

Потому картинко, а ниже ссылка на код.

[будет позже]

Тыркаем на ссылку и идём на код:
https://gist.github.com/WCSN/20420653d256f6f3a955095552cb6a92

Таких функций вагон, но вот ещё и моя :). Не безупречна и может проглючить в каких-то ситуациях, но работает, если задавать строки и подстроку корректно - искать предполагаемый текст, то нормально отработает.

Удачи.