Как реализовать строковый токенизатор для приведенного ниже вопроса, который запоминает последние обработанные индексы при каждом вызове? - PullRequest
0 голосов
/ 24 апреля 2020

Если бы была только одна строка, я мог бы использовать переменную stati c для запоминания последнего индекса, но так как их может быть несколько, которые могут использоваться альтернативно, как я могу запомнить последний индекс, чтобы я мог обрабатывать его в дальнейшем звонки.

Создайте библиотечную функцию для следующих функций:

Пусть будет строка s = «geeksforgeeks», s2 = «geeksforgeeks»

Пусть библиотечная функция будет str_tokenize (s, token)

Let token = «ee»

Теперь, когда мы вызываем str_tokenize (s, token) в первый раз, он должен вернуть «g» (g eeksforgeeks) Для второго время, он должен вернуть «ksforg» (gee ksforg eeks) В третий раз он должен вернуть «ks» (gee ksforg ee ks)

всякий раз, когда мы вызываем этот метод снова в строке s, он должен возвращать значение NULL.

Однако, если мы вызовем этот метод для строки s2, то есть str_tokenize (s2, token), это должно вернуть «g», так как мы не использовали строку s2 ранее. Кроме того, не должно быть никаких изменений, внесенных в исходную строку, которая передается в функцию.

- Пример: строка s1 = ”geeksforgeeks”, s2 = ”geeksforgeeks”;

строка токен = "ee";

str_tokenize (s1, токен); // выводит «ee»

str_tokenize (s1, token); // печатает «ksforg»

str_tokenize (s2, token); // выводит «ee»

str_tokenize (s1, token); // печатает «ks»

str_tokenize (s1, token); // печатает ноль

s1; // выводит «geeksforgeeks»

s2; // печатает «гиксфоргекс»

...