История изменений
Исправление Gyros, (текущая версия) :
Проверил, действит. выводит лишний пробел при при пустой строке.
Кстати, у вас какая-то точка затесалась перед с, это я понял опечатка.
Т.е. лучше так
printf("%*s%s|\n", 30-mbwidth(str), "" , str);
А если допустим в словаре будут только англ. строки (для к-рых уже известно, что strlen(s) == mbwidth(s) и проще делать «%30s»), а я буду всегда вызывать mbwidth в printf-е. Не будет ли (без проверки mbwidth(s)!= strlen(s) это давать небольшую задержку при форматировании вывода?
Проще написать, чем словами объяснять
if (mbwidth(str)!= strlen(str))
printf("%*s%s|\n", 30-mbwidth(str), "" , str);
else
printf("%30s|\n", str);
Просто у меня четко есть словари где одни англ. строки и где англ с рус. смешаны. Так зачем для англ. строк вызывать напрасно mbwidth?
Исправление Gyros, :
Проверил, действит. выводит лишний пробел при при пустой строке.
Кстати у вас какая-то точка затесалась перед с, это я понял опечатка.
Т.е. лучше так
printf("%*s%s|\n", 30-mbwidth(str), "" , str);
А если допустим в словаре будут только англ. строки (для к-рых уже известно, что strlen(s) == mbwidth(s) и проще делать «%30s»), а я буду всегда вызывать mbwidth в printf-е. Не будет ли (без проверки mbwidth(s)!= strlen(s) это давать небольшую задержку при форматировании вывода?
Проще написать, чем словами объяснять
if (mbwidth(str)!= strlen(str))
printf("%*s%s|\n", 30-mbwidth(str), "" , str);
else
printf("%30s|\n", str);
Просто у меня четко есть словари где одни англ. строки и где англ с рус. смешаны. Так зачем для англ. строк вызывать напрасно mbwidth?
Исправление Gyros, :
Проверил, действит. выводит лишний пробел при при пустой строке.
Т.е. лучше так
printf("%*s%s|\n", 30-mbwidth(str), "" , str);
А если допустим в словаре будут только англ. строки (для к-рых уже известно, что strlen(s) == mbwidth(s) и проще делать «%30s»), а я буду всегда вызывать mbwidth в printf-е. Не будет ли (без проверки mbwidth(s)!= strlen(s) это давать небольшую задержку при форматировании вывода?
Проще написать, чем словами объяснять
if (mbwidth(str)!= strlen(str))
printf("%*s%s|\n", 30-mbwidth(str), "" , str);
else
printf("%30s|\n", str);
Просто у меня четко есть словари где одни англ. строки и где англ с рус. смешаны. Так зачем для англ. строк вызывать напрасно mbwidth?
Исправление Gyros, :
Т.е. так лучше?
printf("%*s%s|\n", 30-mbwidth(str), "" , str);
А если допустим в словаре будут только англ. строки (для к-рых уже известно, что strlen(s) == mbwidth(s) и проще делать «%30s»), а я буду всегда вызывать mbwidth в printf-е. Не будет ли (без проверки mbwidth(s)!= strlen(s) это давать небольшую задержку при форматировании вывода?
Проще написать, чем словами объяснять
if (mbwidth(str)!= strlen(str))
printf("%*s%s|\n", 30-mbwidth(str), "" , str);
else
printf("%30s|\n", str);
Просто у меня четко есть словари где одни англ. строки и где англ с рус. смешаны. Так зачем для англ. строк вызывать напрасно mbwidth?
Исправление Gyros, :
Т.е. так лучше?
printf("%*s%s|\n", 30-mbwidth(str), "" , str);
А если допустим в словаре будут только англ. строки (для к-рых уже известно, что strlen(s) == mbwidth(s) и проще делать «%30s»), а я буду всегда вызывать mbwidth в printf-е. Не будет ли (без проверки mbwidth(s)!= strlen(s) это давать небольшую задержку при форматировании вывода?
Проще написать, чем словами объяснять
if (mbwidth(str)!= strlen(str))
printf("%*s%s|\n", 30-mbwidth(str), "" , str);
else
printf("%30s|\n", str);
Просто у меня четко есть словари где одни англ. строки и где англ с рус. смешаны.
Исходная версия Gyros, :
Т.е. так лучше?
printf("%*s%s|\n", 30-mbwidth(str), "" , str);
А если допустим в словаре будут только англ. строки (для к-рых уже известно, что strlen(s) == mbwidth(s) и проще делать «%30s»), а я буду всегде вызывать mbwidth в printf-е. Не будет ли (без проверки mbwidth(s)!= strlen(s) это давать небольшую задержку при форматировании вывода?
Проще написать, чем словами объяснять
if (mbwidth(str)!= strlen(str))
printf("%*s%s|\n", 30-mbwidth(str), "" , str);
else
printf("%30s|\n", str);
Просто у меня четко есть словари где одни англ. строки и где англ с рус. смешаны.