Объявления строковых данных

Имеется несколько способов описания и задания строк:

- Строковая константа.

- Символьный массив как строка.

- Указатель на символьный тип как строку.

- Многомерный символьный массив как набор строк.

- Массив указателей символов как набор строк.

Рассмотрим указанные способы описания строк и приемы работы со строковыми данными при различных вариантах описания.

1.Задание строки в форме строковой константы.

При этом строка задается в “ “, компилятор сам добавляет в конце \0. Используется чаще всего в управляющих строках операторов.

scanf (“%f…”,…);

printf (“rez=…”,…);

printf(“Исходные данные \n”);

 

2.Задание строки в виде массива символьного типа.

При этом возможны два случая: явное указание длины и неявное указание длины массива.

- Явное указание длины подразумевает указание конкретного количества символов, которые могут быть записаны в виде строки:

char <имя> [N];

где: char - тип массива символов;

  < имя > - имя массива;

N максимальная размерность массива, или другими словами количества символов, которые могут быть записаны.

Например:     char texts[25].

Одновременно с объявлением возможно инициализировать строку:

char имя[N]=”последовательность из К–символов”;(К<=N-1)

char aud[20]=”аудитория 8.712”

- При неявном указании длины организуется массив такой длины, сколько символов в заданной строке +1 (“0” символ).  Признаком массива служат квадратные скобки.

char <имя> [ ]=”последовательность символов”

В случае задания строки в виде массива, к каждому символу строки можно обращаться как к элементу массива с помощью индекса – имя[i].

3.Строка в виде указателя на символьный тип.

char *имя = “последовательность символов”

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

Например: char *pst1= “композитор”;

Обращение к элементу массива выглядит следующим образом: *(pst1+i).

4. Многомерный символьный, массив как набор строк.

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

char имя [m][n] = {“ строка 1”,

              “ строка 2”,

                  …

              “ строка L” }

 

char fruits[5][10] = { “яблоко”,

                  “ сливы”,

                     …

                  “ абрикосы” };     

В данном варианте задания строк, к каждому символу можно обращаться, как к элементу двумерного массива, с помощью индексов – имя[i][j].

5. Массив указателей на символьный тип, как набор строк.

Для объявления нескольких строк можно использовать указатели.

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

 

char *имя [M] ={“ строка 1”,

            “ строка 2”,

              …

            “ строка L” }  

 L ≤ M

Для обращения к отдельному символу используется следующее выражение         *(pfruits[i] +j)

 

Ввод-вывод строковых данных

 

При вводе-выводе строк необходимо обязательно зарезервировать память для строки.

Для ввода строковых данных возможно использовать следующие функции: scanf () с форматом %s;

gets(имя строки). 

Например:  char fio[30];

scanf(“%s”, fio);

gets (fio);

Для вывода строковых данных возможно использовать функции:

 ptintf() с форматом %s;

 puts(имя строки).

  Например: printf(“%s”, fio);

puts(fio);

Обе функции выводят все содержимое строки на экран без 0- символа. Отличие состоит в том, что printf() может переводить курсор на другую строку или нет, а puts() – переводит обязательно.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: