- •1. Структура программы
- •Int main ( )
- •2.Тип данных
- •3. Переменная
- •5.Математические операции
- •6. Присваивание(Меншіктеу)
- •7. Инкремента и декремента.
- •Int main(){
- •8. Операторы отношения (сравнения) и логические
- •9. Массив?
- •10.Двумерный массив
- •11. Массивы неопределенной длины
- •12. Строки
- •13. Стандартные функций со строками
- •14. Указатель
- •Int main()
- •15.Массивы указателей. В чем заключается связь массивов и указателей?
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •17. If..Else
- •18. Тернарный условный оператор
- •19. Switch
- •Int main()
- •21) While
- •22. Do. .While
- •Int main()
- •23. Continue и break
- •24. Функция
- •25. Прототип функции
- •Int main()
- •Int main()
- •Int main()
12. Строки
Безусловно, наиболее важным применением одномерных массивов является создание символьных строк. С++ поддерживает строки двух видов. Первый, наиболее часто используемый, — это строка с завершающим нулем или, другими словами, массив символов, заканчивающийся нулем. Строка с завершающим нулем содержит символы, образующие эту строку, за которыми помещается ноль. Такие строки пользуются чрезвычайно широко, так как они обеспечивают высокий уровень эффективности и предоставляют программисту возможность выполнять разнообразные строковые операции. Когда программист на С++ использует термин "строка", он (или она) обычно имеет в виду и именно строку с завершающим нулем. Второй вид строк, определенный в С++ — это класс string, который входит в библиотеку классов С++. Таким образом, string не является встроенным типом. Класс string позволяет использовать объектно-ориентированный подход при обработке строк, однако он используется не так широко, как строка с завершающим нулем. Здесь мы рассмотрим первый вид строк.
Основы техники строк
Объявляя символьный массив, который будет содержать строку с завершающим нулем, нужно задать ему длину на один символ больше, чем у самой длинной помещаемой в него строки. Если, например, вы хотите объявить массив str, в котором будет находиться 10-символьная строка, то вы должны написать следующее:char str[11] ;
Задание величины 11 в качестве длины массива обеспечит в строке место для завершающего нуля.
Как вы уже знаете, С++ позволяет определять символьные константы. Символьная константа представляет собой список символов, заключенный в двойные кавычки. Вот несколько примеров:
“Hello!” “I like C++” “Mars” “”
Добавлять ноль в конец строки вручную нет необходимости; компилятор С++ сделает это сам. В результате строка "Mars" будет выглядеть в памяти таким образом:
Последняя строка в нашем примере выглядит как "". Такая строка называется нулевой строкой. Она содержит только завершающий ноль и больше ничего. Нулевые строки используются в программах в качестве пустых строк.
13. Стандартные функций со строками
С++ поддерживает широкий диапазон функций для манипуляций со строками. Самые известные из них:strcpy( )
strcat( )
strcmp( )
strlen( )
Все строковые функции используют один и тот же заголовок <cstring>. Рассмотрим эти функции подробнее.
Вызов функции strcpy( )выглядит таким образом:strcpy (куда, откуда)
Функция strcpy( ) копирует содержимое строки откуда в строку куда. Не забывайте, что массив, образующий куда, должен иметь достаточный размер, чтобы в него поместилась строка откуда. Если места в нем не хватит, то произойдет выход за пределы массива куда, что скорее всего, приведет к аварийному завершению программы.
Вызов функции strcat( )выглядит таким образом: strcat(s1,s2);
Функция strcat() присоединяет строку s2 к концу s1; строка s2 остается без изменений. Вы должны обеспечить достаточно большой размер строки s1, чтобы она могла вместить как свое исходное содержимое, так и содержимое s2.
Вызов функции strcmp( )выглядит таким образом: strcmp(s1,s2);
Функция strcmp() сравнивает две строки и возвращает 0, если они равны. Если s1 больше s2 лексикографически (т. е. по порядку следования символов алфавита), возвращается положительное число; если она меньше s2, возвращается отрицательное число.
При использовании strcmp() важно иметь в виду, что при равенстве строк она возвращает false. Таким образом, если вы хотите, чтобы что-то произошло при равенстве строк, вам придется использовать оператор !. В следующем примере условие, управляющее предложением if, истинно, если str равна строке "С++":
if(!strcmp(str, "С++") cout << "str = С++";
Общая форма вызова функции strlen( ) такова: strlen(s);
Здесь s — это строка. Функция strlen() возвращает длину строки, на которую указывает s.
