LINUX.ORG.RU

История изменений

Исправление Legioner, (текущая версия) :

К символам строки, по индексу.

А что ты понимаешь под символом строки? unicode codepoint? К нему не будет случайного доступа, как его нет практически ни в одном языке программирования сейчас. Если твой алгоритм требует такого доступа, создай массив 4-байтовых чисел и заполни его codepoint-ами. Правда скорее всего тебе нужен доступ к графемам, а не символам. Например «ë» это 2 символа: комбинирующий «¨» и «e». Но для пользователя это один знак. К ним тоже не будет случайного доступа, потому что эти графемы в общем случае могут занимать произвольное число байтов или codepoint-ов. Если надо — заводи массив строк и заполняй их. Или массив указателей на исходную строку.

Только ты не ответил,

в каких задачах это требуется?

Исходная версия Legioner, :

К символам строки, по индексу.

А что ты понимаешь под символом строки? unicode codepoint? К нему не будет случайного доступа, как его нет практически ни в одном языке программирования сейчас. Если твой алгоритм требует такого доступа, создай массив 4-байтовых чисел и заполни его codepoint-ами. Правда скорее всего тебе нужен доступ к графемам, а не символам. Например «ë» это 2 символа: комбинирующий «¨» и «e». Но для пользователя это один знак. К ним тоже не будет случайного доступа, потому что эти графемы в общем случае могут занимать произвольное число байтов или codepoint-ов. Если надо — заводи массив строк и заполняй их.

Только ты не ответил,

в каких задачах это требуется?