LINUX.ORG.RU

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

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

Неужели непонятно, что это тот пример, который обретает смысл в определённых контекстах? Я привёл пример с цифрой 9, но она может быть и не 9. Всё зависит от конкретной задачи, в рамках которой предварительно определяется где отрубать. Это могут быть как задачи форматирования текста под фиксированную ширину, так и другие задачи выделения подстрок.

Например, в 2006-м году я пробовал пилить свой шелл. И там, например, после обнаружения того, что команда начинается с «cd » указанный далее путь выделялся отрубанием лишних 3-5 символов:

        if (strncmp(clstr, "cd ", 3) == 0) {
            if (strncmp(clstr + 3, "~", 1) == 0) {
                (void) chdir(getenv("HOME"));
                clstr += 2;
            }
            (void) chdir(clstr + 3);

символ — понятие растяжимое

А вот и нет. И для людей и для кодировок текста вполне определённое. Да, иероглифы тоже являются символами, но не для тех кодировок, в которых отсутствуют. Другой вопрос, что людей могут терзать сомнения выделять ли разные штрихи и точки сверху и т.п. в отдельные символы или нет, но это уже вопрос ограничения конкретной кодировки, поскольку для человека все эти разные варианты являются разными символами.

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

Неужели непонятно, что это тот пример, который обретает смысл в определённых контекстах? Я привёл пример с цифрой 9, но она может быть и не 9. Всё зависит от конкретной задачи, в рамках которой предварительно определяется где отрубать. Это могут быть как задачи форматирования текста под фиксированную ширину, так и другие задачи выделения подстрок.

Например, в 2006-м году я пробовал пилить свой шелл. И там, например, после обнаружения того, что команда начинается с «cd » указанный далее путь выделялся отрубанием этих 3-х символов:

        if (strncmp(clstr, "cd ", 3) == 0) {
            if (strncmp(clstr + 3, "~", 1) == 0) {
                (void) chdir(getenv("HOME"));
                clstr += 2;
            }
            (void) chdir(clstr + 3);

символ — понятие растяжимое

А вот и нет. И для людей и для кодировок текста вполне определённое. Да, иероглифы тоже являются символами, но не для тех кодировок, в которых отсутствуют. Другой вопрос, что людей могут терзать сомнения выделять ли разные штрихи и точки сверху и т.п. в отдельные символы или нет, но это уже вопрос ограничения конкретной кодировки, поскольку для человека все эти разные варианты являются разными символами.