Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Определение длины строк

Строки

Рассмотрим пример.

1. Поменять местами наибольшее и наименьшее число в массиве.

2. Определить, является ли массив убывающим или возрастающим.

 

В стандарт С++ включена поддержка нескольких наборов символов.

Для представления символьных строк в С++ не существует специального строкового типа. Вместо этого строки в С++ представляются как массивы элементов типа char, заканчивающиеся терминатором строки - символом с нулевым значением ('\0').

В частности символ ‘\0’ означает в языке С++ конец строки и все символы после него игнорируются как символы строки.

Следующий пример показывает особенность использования данного специального символа.

char str1[10] = {‘Л’,’е’,’к’,’ц’,’и’,’я’,’\0’};
char str2[10] = {‘Л’,’е’,’к’,’ц’, ’\0’,’и’,’я’ };
char str3[10] = {‘Л’,’е’, ’\0’,’к’,’ц’,’и’,’я’ }; ….

cout << (“S1\S2\S3\n”,str1,str2,str3);???????

Результатом работы данного кода будет вывод следующих трех строк:

Лекция
Лекц
Ле

Из этого примера видно как символ конца строки ‘\0’ влияет на длину строк.

Таким образом, чтобы подсчитать длину строки (число символов) необходимо считать символы до тех пор, пока не встретится символ ‘\0’ или не будет достигнут конец массива.

При объявлении строкового массива необходимо принимать во внимание наличие терминатора в конце строки, отводя тем самым под строку на один байт больше:

// Объявление строки размером 10 символов, включая терминатор.

// Реальный размер строки: 9 символов + 1 терминатор

char STROKA[10];

Строковый массив может при объявлении инициализироваться начальным значением.

При этом компилятор автоматически вычисляет размер будущей строки и добавляет в конец нуль-терминатор:

char Wednesday[] = "Среда"; // Объявление и инициализация строки

char Wednesday[] = {'C','р','e','д','a','\0'}; // что равносильно:

В качестве оператора ввода при работе со строками вместо оператора записи в поток (») лучше использовать функцию getline(), так как потоковый оператор ввода игнорирует вводимые пробелы, а кроме того, может продолжить ввод элементов за пределами массива, если под строку отводится меньше места, чем вводится символов.

Функция getline() принимает два параметра:

- первый аргумент указывает на строку, в которую осуществляется ввод,

- второй - число символов, подлежащих вводу.

Пример:

#include <iostream.h>

int main()

{

char myString[4];

cout «"Введите строку: " «'\n';

cin.getline(myString, 4);

cout «"Вы ввели: " «myString;

return 0;

}

Объявленная в начале программы строка myString может принять только три значащих символа и будет завершена нультерминатором. Все последующие символы, вводимые в этот строковый массив, будут отброшены. Как видно из примера, при использовании функции getline () вторым параметром следует указывать число, меньше или равное размеру вводимой символьной строки.

Большинство функций работы со строками содержится в библиотеке string.h.

Очень часто при работе со строками необходимо знать, сколько символов содержит строка. Для выяснения информации о длине строки в заголовочном файле string.h описана функция strlen().

Синтаксис этой функции имеет вид:

size_t strlen(const char* string)

Данная функция в качестве единственного параметра принимает указатель на начало строки string, вычисляет количество символов строки и возвращает полученное без знаковое целое число (size__t).

Функция sizeof() возвращает значение на единицу меньше, чем отводится под массив по причине резервирования места для символа ' \0'.

Следующий фрагмент демонстрирует использование функции strlen():

char Str[] = "ABCDEFGHIJK";

unsigned int i;

i = strlen(Str);

 

 

<== предыдущая лекция | следующая лекция ==>
Массивы | Struct HOUSE
Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 405; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.017 сек.