Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Пример. Строка – это ряд символов, хранящихся в последовательно расположенных байтах памяти

Строки

 

Строка – это ряд символов, хранящихся в последовательно расположенных байтах памяти. Рассмотрим С-стиль работы со строками. Из определения следует, что строку можно хранить в массиве символов (char). Однако последний символ строки С – стиля является нулевым символом. Он служит для обозначения конца строки и записывается как \0.

char dog[5] = { 'b', 'e', 'a', 'u', 'x' };

char cat[5] = { 'f', 'a', 't', 's', '\0' };

 

Здесь первая запись не является строкой, а вторая строка. Объект cout при выводе строки, обрабатывает ее посимвольно, до достижения нулевого символа. Если же мы будет обрабатывать как строку первый массив, то данный объект сначала выведет все символы массива, а дальше будет отображать байт за байтом памяти, пока не будет достигнут нулевой символ. Однако, есть более лучший способ присвоения строки символьному массиву. Он состоит в использовании строковой константы, т.е. строки в кавычках.

char bird[10] = " Mr. Cheep";

char fish[] = " Bubbles";

 

Любые две строковые константы, разделенные только пробельными символами (пробелами, знаками табуляции и символами новой строки) автоматически объединяются в одну.

cout < < " Такое объединение называется "

" конкатенацией строк.\n";

 

При вводе строки используя объект cin, ввод выполняется до первого пробельного символа. Для ввода строк состоящих из нескольких слов используются функции-элементы getline и get.

cin.getline(name, ArSize);

cin.get(name, ArSize);

 

Эти функции считывают из входного потока ArSize-1 символов или менее и записывают их в строковую переменную name. Однако при достижении символа перевода строки, первая функция его удаляет, а вторая нет (это бывает полезно для определения была ли строка считана полностью). В конце введенной строки автоматически добавляется нулевой символ. Если введенная строка содержит больше указанного количества символов, то обе функции оставляют оставшиеся символы во входной очереди, однако первая из них устанавливает бит ошибки и прекращает дальнейший ввод. Для того чтобы узнать длину введенной строки можно воспользоваться стандартной функцией strlen(), для чего необходимо включить заголовочный файл cstring.

Пример.

#include< iostream>

#include< clocale>

#include< cstring>

usingnamespace std;

int main()

{

setlocale(LC_ALL, " Russian");

constint ArSize = 20;

char name[ArSize];

char dessert[ArSize];

cout < < " ВведитеВашуфамилиюиимя: \n";

cin.getline(name, ArSize);

cout < < " ВведитеВашлюбимыйдесерт: \n";

cin.getline(dessert, ArSize);

cout < < " Размермассивасименемравен " < < strlen(name)+1< < " \n";

cout < < " У меня есть " < < dessert;

cout < < " для " < < name < < ".\n";

return 0;

}

 

Задачи

 

1. Вставить вместо пробелов точки.

2. Удалить из текста все цифры.

3. Сколько слов в тексте.

4. Удалить из текста все буквы " о".

5. Найти в тексте подстроку " авс".

6. Сколько раз во втором слове встречается первая буква первого слова.

7. Составить программу для подсчета числа букв А Б В в предложении.

8. Вычислить сколько цифр в числе.

<== предыдущая лекция | следующая лекция ==>
Нумерация страниц. Страницы текстового документа нумеруют арабскими цифрами, соблюдая сквозную нумерацию по всему тексту документа | Требования к оформлению курсовой работы
Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.006 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал