Интересно в C строк, NULL, пробелы - PullRequest
6 голосов
/ 12 сентября 2010

Могу ли я сказать, что в C пробел в строке имеет тип NULL или что-то еще?
В C какой символ представляет завершение строки?

Ответы [ 4 ]

16 голосов
/ 12 сентября 2010

нулевой символ (значение ASCII 0, '\0' как символьный литерал) завершает строку в C. Этот символ , а не обычно рассматривается как символ пробела.

Пробел в середине этой строки, например: "Hello world" - это символ со значением ASCII 32. Это не то же самое, что NULL или \0.

3 голосов
/ 13 сентября 2010

Следующие символы считаются «пробелами» в том смысле, что функция isspace () возвращает ненулевое значение:

  • пробел (ASCII 0x32, C литерал ' ')
  • вкладка (ASCII 0x09, C literal '\t')
  • вертикальная табуляция (ASCII 0x0B, C-литерал '\v')
  • подача формы (ASCII 0x0C, C-литерал '\f')
  • возврат каретки (ASCII 0x0E, C-литерал '\r')
  • перевод строки (ASCII 0x0A, C-литерал '\n')

Терминатором строки является символ ASCII NUL (0x00); как правило, он не влияет на курсор, если вы пытаетесь вывести его на консоль или терминал.

3 голосов
/ 12 сентября 2010

Могу ли я сказать, что в C пробел в строке имеет тип NULL или что-то еще?

Я не уверен, что вы подразумеваете под типом NULL.Пробел - это пробел или символ табуляции или возврата каретки.

В C, какой символ представляет окончание строки?

Символ '\0' являетсяокончание строки.

0 голосов
/ 12 сентября 2010

Символ завершения - это байт со значением 0. Выражается как буквальный символ, это '\0'.

Ваш первый вопрос о пустом пространстве с типом NULL не имеет смысла.

...