Главная » Статьи » Програмування » C [ Добавить статью ]

RUS Уроки по программированию на языке С (Работа со строками в С++. Синтаксис объявления строковых массивов и их инициализация.)

Работа со строками в С++. Синтаксис объявления строковых массивов и их инициализация.

В прошлых уроках, Вы познакомились с различными видами массивов. Однако сегодня мы более детально рассмотрим еще один тип массивов - строковый, так как этот тип заслуживает особого внимания. Строки предназначены для ввода, обработки и вывода символьной информации.

Строковая константа - это последовательность из нуля или более символов, заключенных в кавычки. Кавычки не являются частью строковой константы, а служат только для ее ограничения.

Строки представляются в виде массива элементов типа char. Это означает, что символы строки можно представить расположенными в соседних ячейках памяти - по одному символу в ячейке. Но массив символов - не всегда строка!

В качестве примера рассмотрим следующую строку: "Символьная строка". Кавычки не являются частью строки. Они вводятся для того, чтобы отметить ее начало и конец, то есть играют ту же роль, что и апострофы в случае одиночного символа (каждая ячейка - 1 байт).

Необходимо отметить, что на рисунке последним элементом массива является символ '\0'. Это нуль-символ: в языке C он используется для того, чтобы отмечать конец строки. Нуль-символ - не есть цифра 0; он не выводится на печать и в таблице кодов ASCII имеет номер 0. Наличие нуль-символа означает, что количество ячеек массива должно быть, по крайней мере на одну больше, чем количество символов, которые необходимо размещать в памяти.

Не следует путать символьную константу со строкой, содержащей один символ: 'Х' - это не то же самое, что "Х". В первом случае - это отдельный символ. Во втором случае - это строка, состоящая из одного символа (буквы Х) и символа конца строки '\0'.

Правила инициализации строковых массивов.

Приведем пример инициализации строкового массива:

#include <iostream>
using namespace std;
int n=5;
// Инициализация строкового массива. 

char line[5] = { 'C','a','t','!','\0' };
void main ()
{
 cout << "Word: ";
 for (int i=0; i<n; i++)
 cout << line[i];
}

Вышеописанный пример не слишком удобен для создания длинных строк. Кроме того, вывод строки побуквенно в цикле выглядит довольно странно, не так ли? Для символьных массивов существует специальный способ инициализации. Вместо фигурных скобок и запятых можно прямо использовать строку символов, заключенных в кавычки. При этом в описании не обязательно задавать размеры массива, поскольку компилятор "сам" определяет его длину, подсчитывая число начальных значений. А операция вывода cout настроена таким образом, что достаточно указать только имя строкового массива и он тут же отобразится на экране.

#include <iostream>
using namespace std;
int n=5;
char line[] = "Cat!"; // Инициализация строкового массива. 
 
void main ()
{
 cout << "Word: ";
 // Показ на экран строкового массива. 
 cout <<line;
}

Категория: C | Добавил: DEN-SHP (05.11.2012)
Просмотров: 1078 | Комментарии: 1 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]