Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Топ:
Особенности труда и отдыха в условиях низких температур: К работам при низких температурах на открытом воздухе и в не отапливаемых помещениях допускаются лица не моложе 18 лет, прошедшие...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного...
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Интересное:
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Дисциплины:
2017-10-21 | 248 |
5.00
из
|
Заказать работу |
|
|
Важно помнить, что C++ всегда использует 0 для индекса первого элемента массива, а индекс последнего элемента на единицу меньше размера массива.
Массив позволяет программам хранить несколько значений внутри одной и той же переменной. Для обращения к определенному значению внутри массива программы используют индекс. Говоря кратко, значение индекса указывает требуемый элемент массива. Все массивы C++ начинаются с элемента с индексом 0. Например, следующий оператор присваивает значение 100 первому элементу массива с именем scores:
scores[0] = 100;
Когда программа объявляет массив, она указывает количество элементов, которые массив может хранить. Например, следующий оператор объявляет массив, способный хранить 100 значений типа int.
int scores[100];
В данном случае массив представляет собой элементы от scores[0] до scores[99].
При объявлении массива можно указать первоначальные значения, поместив их между левой и правой фигурными скобками, следующими за знаком равенства. Например, следующий оператор инициализирует массив values:
int values[5] = { 100, 200, 300, 400, 500 };
Подобным образом следующее объявление инициализирует массив с плавающей точкой:
float salaries[3] = { 25000.00. 35000.00, 50000.00 };
Если вы не указываете первоначальное значение для какого-либо элемента массива, большинство компиляторов C++ будут инициализировать такой элемент нулем. Например, следующее объявление инициализирует первые три из пяти элементов массива:
int values[5] = { 100, 200, 300 };
Программа не инициализирует элементы values[3] и values[4]. В зависимости от вашего компилятора, эти элементы могут содержать значение 0. Если вы не указываете размер массива, который вы инициализируете при объявлении, C++ распределит достаточно памяти, чтобы вместить все определяемые элементы. Например, следующее объявление создает массив, способный хранить четыре целочисленных значения:
|
int numbers[] = { 1, 2, 3, 4 };
Строка как массив символов
Строка есть последовательность символов, заключенная в двойные кавычки: "...". Строка имеет тип "массив символов" и класс памяти static, она инициализируется заданными символами. Все строки, даже если они записаны одинаково, различны. Компилятор располагает в конце каждой строки нулевой (пустой) байт \0 с тем, чтобы сканируюшая строку программа могла найти ее конец.
Массив char можно инициализировать строкой. Последовательные символы строки инициализируют члены массива. Например:
char msg[] = "Syntax error on line";
демонстрирует массив символов, члены которого инициализированы строкой. Обратите внимание, что sizeof(msg)==25.
Любая символьная константа, например "ОЙ У ПОЛИ КРИНИЧКА", представляет собой массив символов. Во внутреннем представлении компилятор завершает такой массив символом "\0", так что любая программа может по нему легко обнаружить конец строки. Поэтому строка занимает в памяти на один символ больше, чем записано между двойными кавычками. Нумерация элементов массива начинается с нуля. Надо помнить, что, например 'T' - это символ(буква), а ' T ' - это строка, состоящая из двух символов: 'T' и '\0'. Отсюда следует, что пустых строк не бывает.
Строка в языке Си - это разновидность константы и ее можно присваивать некоторой переменной, представляющей массив символов:
char str[]="ТЕКСТ";
Такая запись и короче и понятнее, чем общепринятая для начальной инициализации массивов:
char str[]={'Т','Е','К','С','Т',};
Если длина строки в квадратных скобках опущена, то она определяется автоматически, по количеству присваиваемых символов. В приведенном выше примере она равна шести.
Запишем программу (пример), в которой функция main формирует строку по указанному выше правилу и вызывает функцию length, которая в качестве аргумента получает начальный адрес этой строки и вычисляет ее длину(без учета завершающего символа). Эта функция представляет собой самостоятельный интерес и будет использована нами а дальнейшем как библиотечная.
|
Пример
/*длина строки*/ void length(s); char s[]; { int l=0; while(s[l]!='\0') i++; return(i); } #include <iostream.h> main() { static char str[]="ОЙ У ПОЛИ КРИНИЧКА"; cout<<length(str); } |
С помощью функций стандартной библиотеки языка реализованы часто используемые операции над строками. В большинстве своем в качестве строк они используют указатели. Прежде чем использовать их, нужно подключить библиотеку string.h.
strlen(st) возвращает длину строки st в байтах, не считая последнего завершающего байта
strcmp(st1,st2) сравнивает две строки по алфавиту. Если строка st1 стоит раньше по алфавиту чем st2, то результат функции меньше нуля, если позже – больше нуля, если равны – равна нуля. Функция целочисленная.
strcpy(k,st) копирует одну строку st по адресу k, включая нулевой байт. В качестве результата функция возвращает адрес первой строки.
strcat(k,st) – присоединяет вторую строку к концу первой, включая завершающий нулевой байт. На его место в первой строке переписывается первый символ второй строки. В качестве результата функция возвращает адрес первой строки, где по адресу k получается склеенная строка.
|
|
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!