Вы сказали, что не хотите повышения, так что ...
Возможно, это странный подход для использования в C ++, но я использовал его в MUD, где мне нужно было много токенизации в C.
возьмите этот блок памяти, назначенный для char * chars:
char chars [] = "Мне нравится возиться с памятью";
Если вам нужно токенизировать напробел:
create array of char* called splitvalues big enough to store all tokens
while not increment pointer chars and compare value to '\0'
if not already set set address of splitvalues[counter] to current memory address - 1
if value is ' ' write 0 there
increment counter
когда вы закончите, у вас будет уничтожена исходная строка, поэтому не используйте ее, вместо этого у вас есть массив строк, указывающих на токены.количество токенов - это переменная счетчика (верхняя граница массива).
подход такой:
- итерация строки и указатель начала обновления токена обновления при первом появлении
- конвертирует символ, который вам нужно разделить, в нули, которые означают завершение строки в C
- , подсчитайте, сколько раз вы делали это
PS.Не уверен, что вы можете использовать подобный подход в жестких условиях Юникода.