Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции по проге / 11_Строки_Основы (1)

.pdf
Скачиваний:
30
Добавлен:
14.03.2016
Размер:
180.18 Кб
Скачать

Лекция №11.1 Строки: основы

Представление строк в языке Си Представление многострочного текста Ввод-вывод строк Обработка строк

1

Представление строк в языке Си

В языке Си нет специального типа данных для представления строк

В языке Си строка - это массив символов, который заканчивается нуль-символом (символ с кодом 0 или '\0')

Нуль-символ сигнализирует о фактическом конце строки

char_array

0

1

2

3

4

5

 

 

 

 

 

 

 

 

 

 

массив символов

 

П

р

 

 

и

 

 

м

е

 

 

р

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

str

0

1

2

3

4

5

 

6

 

7

8

 

 

 

 

строка

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

П

р

 

 

и

 

 

м

е

 

 

р

\0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

Объявление строк

char <имя массива>[<кол-во элементов>];

<кол-во элементов> - целочисленное выражение, операндами которого являются константы

<кол-во элементов> = <кол-во символов> + 1

Размер памяти, выделяемой под строку:

3

Кол-во байт = <кол-во элементов>

 

Задание

Объявить строку для хранения ФИО

"Козлов Антон Петрович"

4

Пример объявления строки

Определим длину ФИО

"Козлов Антон Петрович"

Длина ФИО составляет 21 буквы вместе с 2-мя пробелами

Объявим массив из 22 символов: 21 символ для ФИО + 1 символ для нуль-символа

char FIO[22];

5

Инициализация строк

Инициализация символьными константами char <имя массива>[[<кол-во элементов>]] =

{ <символьная константа 1>,

... , <символьная константа N>, '\0'};

Инициализация строковой константой

char <имя массива>[[<кол-во элементов>]] =

6

<строковая константа>;

Задание

Объявить строку для хранения 30 символов, различными способами записать в нее "пустую" строку (которая не содержит символов)

7

Пример инициализации строки

Так как строка должна хранить 30 значимых символов, то размер массива составляет 31 символ (дополнительный символ для нуль-символа)

"Пустая" строка не содержит значащих символов, но содержит нуль-символ

1)

char

emptyStr[31]

=

{'\0'};

//

1-й

вариант

2)

char

emptyStr[31]

=

"";

//

2-й

вариант

8

Обращение к символу строки

Обращение к символу строки – это обращение к элементу массива:

<имя массива>[<индекс символа>]

Как результат возвращается символ строки или элемент массива (l-value выражение)

0

1

2

 

3

 

4

 

 

5

6

7

8

 

str

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

П

 

р

 

и

 

 

м

 

е

 

р

 

\0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

 

 

 

 

str[3]

 

 

 

 

 

 

 

 

Обращение к подстроке

Обращение к подстроке – обращение ко 2-й части строки:

<имя массива> + <индекс символа>

<индекс символа> – индекс символа, с которого начинается подстрока

Как

результат возвращается указатель (адрес) на

первый символ подстроки

 

 

 

 

 

 

 

 

 

 

 

0

1

2

 

 

3

4

5

6

 

7

8

 

 

 

str

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

П

 

р

 

и

 

 

 

м

 

е

 

р

 

\0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

str + 3