LINUX.ORG.RU

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

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

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

да, тут надо учитывать, что сам код тоже может быть в разных кодировках. и компилятор это просечёт и скомпилирует константные строки в той кодировке, которая у файла использована. можно, например, через iconv сконвертить файл с кодом в ISO-8859-5 и если в консоли поставить эту кодировку, то вывод будет так же на русском языке, но длина строки будет 12.

это как раз то, о чём я писала выше: с кодировками возникает сразу много дополнительных вопросов, часть которых непосредственно к С не относится. это реализации разных кодировок и взаимодействие с настройками консоли (этим тоже можно управлять из кода). там нет ничего особо сложного. но надо иметь в виду, что есть особенности.

Исправление Iron_Bug, :

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

да, тут надо учитывать, что сам код тоже может быть в разных кодировках. и компилятор это просечёт и скомпилирует константные строки в той кодировке, которая у файла использована. можно, например, через iconv сконвертить этот файл в ISO-8859-5 и если в консоли поставить эту кодировку, то вывод будет так же на русском языке, но длина строки будет 12.

это как раз то, о чём я писала выше: с кодировками возникает сразу много дополнительных вопросов, часть которых непосредственно к С не относится. это реализации разных кодировок и взаимодействие с настройками консоли (этим тоже можно управлять из кода). там нет ничего особо сложного. но надо иметь в виду, что есть особенности.

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

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