@MadWastefield

Можно ли в C++ узнать позицию с которой начинается подстрока без перебора символов в строке?

есть строка char str[50] и подстрока "tt", можно ли как то узнать позицию подстроки в строке без использования библиотеки string и посимвольного перебора строки str?
Есть вот strstr() которая возвращает указатель на начало подстроки в строке str и в одельном "лаборатоном" случае, когда всё запускается в отдельной программе с целью только проверить это у меня срабатывает такой метод:
char *pSubStr = strstr(str, "s"); 
int num = str - pSubStr;

в переменно int оказывается как раз то что надо, но как только я пытаюсь применить это в реальной программе, где строка задана чёрти где, а подстрока берётся спустя где-то сотню строк кода получается что разность строк str - pSubStr выдаёт не позицию подстроки а огромное число. Видимо способ не работает.
  • Вопрос задан
  • 371 просмотр
Решения вопроса 1
@Mercury13
Программист на «си с крестами» и не только
1. Надо проверить pSubStr на NULL. Если оно так — не найдено.
2. Всё наоборот, pSubStr - str.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы