YugGO
@YugGO

Как посчитать количество символов в char на С?

Хоть вопрос и звучит легко, но у меня возникла проблема.

Есть:
char text[] = "Text text text";

Не могу найти способ узнать количество символов.
  • Вопрос задан
  • 376 просмотров
Решения вопроса 2
@res2001
Developer, ex-admin
Конкретно для приведенного примера можно делать так: (sizeof(text) - 1)
Это будет работать только в подобных случаях, когда text - это статический/автоматический массив фиксированного размера (как в данном примере). -1 требуется, чтоб удалить завершающий нулевой символ.
Преимущество перед strlen в том, что sizeof вычисляется на этапе компиляции, т.е. по факту в коде вместо этого выражения будет константа 14, вычисленная компилятором.
Кстати, можно делать еще так: sizeof("Literal string") - 1

Если text будет определена по другому, например char *text = "Literal string";, то такой подход уже не прокатит.
Универсальный вариант, который будет работать для всех случаев однобайтной строки с завершающим нулем - использовать strlen.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы