ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Лекция 10. Символьные массивы и функции для работы с литерами и строками
Любая строка символов, заключённая в двойные кавычки называется строковым литералом и представлена в памяти программы как массив элементов типа char, в конце которого помещён символ ‘\0’. Это даёт возможность использовать строковые литералы как аргументы в библиотечных функциях работы со строками. Значением литерала является его адрес размещения в памяти. Инициализация строковых массивов 1) char array[10] = {‘A’,’B’,’C’}; Выделяется память на 10 элементов. Первые 3 инициализируются значениями из списка {…}, остальные элементы значением ‘\0’ если массив внешний или к нему добавлено static, если автоматический, то остальное мусор. 2) char array[] = {‘A’,’B’,’C’}; Будет создан массив из 3-х элементов и инициализирован. 3) char strings[3][80]= {“Первая строка”, “Вторая строка”, “Третья строка”}; Здесь каждая из трёх строк содержит по 80 байт и заполняется посимвольно символами из литералов в т.ч. каждая строка заканчивается символом ‘\0’. Заполнение остатков строк как в предыдущем случае. 4) Можно было бы и не писать первый индекс, т.е. указать char strings[][80]={…}
Пример string = “Слово”; Если бы был объявлен массив: char string[10];, то string = “Слово”; NB! Нельзя выполнить.
Операции над массивами Основные положения Для массовых операций необходимо использовать библиотечные функции пересылок строк. Пример (Работа с символьными массивами с использованием ссылок) strcpy (s,t) /* копирование из t в s */ char s, t; /*см. <string.h>*/ { while ((*s++=*t++)! = ‘\0’); } В вызове функции strcpy() аргументы должны быть либо массивами, либо конкретно определёнными указателями. Так, в последнем случае s должно ссылаться на свободное место в памяти для размещения пересылаемых данных, а t должно ссылаться на массив, содержащий исходную строку, заканчивающийся символом ‘\0’, либо должна быть инициализирована ссылкой на литерал. Пример char s[20], *t = “Слово”; … strcpy(s,t)
Не нашли, что искали? Воспользуйтесь поиском:
|