Книга: Язык Си - руководство для начинающих
ОПРЕДЕЛЕНИЕ СТРОК В ПРОГРАММЕ
Строковые константы
Всякий раз, когда компилятор встречается с чем-то, заключенным в двойные кавычки, он определяет это как строковую константу. Символы, заключенные в кавычки, плюс завершающий символ '', записываются в последовательные ячейки памяти. Компилятор подсчитывает количество символов, поскольку ему нужно знать размер памяти, необходимой для запоминания строки. Наша программа использует несколько таких строковых констант, чаще всего в качестве аргументов функций printf( ) и puts( ). Заметим также, что мы можем определять строковые константы при помощи директивы #define.
Если вы хотите включить в строку символ двойной кавычки, ему должен предшествовать символ обратной дробной черты:
рrintf(""Беги, Спот, беги!" - сказал Дик.n");
В результате работы этого оператора будет напечатана строка:
"Беги, Cпот, беги! - "сказал Дик.
Cтроковые константы размещаются в статической памяти. Вся фраза в кавычках является указателем на место в памяти, где записана строка. Это аналогично использованию имени массива, служащего указателем на расположение массива. Если это действительно так, то как выглядит оператор, который выводит строку?
/* строки в качестве указателей */
main( )
{
printf("%s, %u, %c n", "We", "love", *"figs");
Итак, формат %s выводит строку We. Формат %u выводит целое без знака. Если слово "love" является указателем, то выдается его значение, являющееся адресом первого символа строки. Наконец, *"figs" должно выдать значение, на которое ссылается адрес, т. е. первый символ строки "figs". Произойдет ли это на самом деле? Да, мы получим следующий текст:
We, 34, f
Ну, вот! Давайте теперь вернемся к строкам, находящимся в символьных массивах.
- Определение констант
- 13. Символьные строки и функции над строками
- Инструмент командной строки gbak
- Инструмент командной строки gfix
- Как выделить строку, столбец и ячейки
- Удобная операция объединения строк
- 1.2. Определение количества информации. Единицы измерения количества информации
- Работа со строками
- Определение версии клиента
- Определение пользовательского формата числовых данных
- Определение целей. Построение цепочек
- Преобразование строки в целое: stoi( )