LINUX.ORG.RU

Юникод и перемещение указателя строки на N символов

 


3

2

На ЛОРе многие активно продвигают юникод, пытаясь убеждать, что это универсально и современно, и не так уж много ест ресурсов. Но, разве можно нормально работать с подстроками в юникоде? Выношу вопрос отдельно, поскольку интересно посмотреть практическое решение, а не только утверждения, что это можно делать специализированными функциями. Глянул я эту документацию по wchar.h и так ничего и не понял.

Как сдвинуть указатель на N символов? На N байт указатель передвинуть проще пареной репы:

strptr + N
А как передвинуть указатель на строку в юникоде на N юникодных символов специализированными функциями?

★★★★★
Ответ на: комментарий от slovazap

Строка, естественно, в wchar_t

Ответ, видимо, был здесь. Спасибо. Привые думать о строках как о массиве данных типа char.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

Ответ, видимо, был здесь. Спасибо. Привые думать о строках как о массиве данных типа char.

Только учти, что wchar_t не обязан вмещать весь Юникод (он вообще по стандарту не связан с Юникодом). Тогда уж, по крайней мере, бери char32_t.

proud_anon ★★★★★
()
Ответ на: комментарий от saahriktu

Я думал, что ты уже на wchar_t переписал. Думал, что и с ним не твой фокус работает, т.к. сам совсем немного имел с ним дело и уже давно.

te111011010
()
Ответ на: комментарий от saahriktu

Да, проверил, работает.

#include <stdio.h>
#include <wchar.h>
#include <locale.h>

int main(void)
{
	setlocale(LC_ALL, "ru_RU.UTF-8");
	wprintf(L"Тест\n" + 2);
	return 0;
}
 ./test_unicode 
ст
te111011010
()
Последнее исправление: te111011010 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.