Самое забавное, что именно это я и не знаю как сделать.
gris очень воздушно намекнул вот этим:
или всё наоборот
на прохождение строк в обратном порядке. (UPD: Как оказалось, не совсем на это. Но проходить строки в обратном порядке тоже можно!)
Звучит, наверное, странно
Очень странно, вы правы.
Вообще, если вы хотите с циклом, и у вас не получается — не лепите в одну кучу. Напишите функцию, которая ищет первое вхождение, начиная с заданного (индексом или указателем) места строки. А потом вызывайте в цикле её — тогда будет трудно испольовать её неправильно, потому что к её коду нет доступа рукам. Уже потом можно будет «развернуть» её вызов, если нужна будет оптимизация.