Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Операции со строками

Определение 1

Операции со строками — это операции с последовательностями символов.

Введение

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

  1. В формате строковых констант.
  2. Символьные массивы.
  3. Посредством указателя, что тип является символьным.
  4. В формате строкового массива.

Кроме этого, необходимо предусмотреть определённые объёмы памяти, где будут сохраняться строки. Любой последовательный символьный набор, который заключён в кавычки, может восприниматься в качестве строковой константы. Чтобы иметь возможность корректно вывести строку, необходимо её заканчивать комбинацией «\0». Если объявляется строковая константа, то эта комбинация прибавляется к ней по умолчанию. То есть, последовательный набор знаков, которые заявлены строковой константой, разместится в компьютерной памяти вместе с нулевым байтом. Для сохранения этих данных назначается комплект ячеек памяти. Это означает, что строка является символьным массивом. Чтобы сохранить в виде кода один символьный знак, в памяти выделяется один байт.

Операции со строками

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

  1. Выделить участок памяти для массива.
  2. Осуществить процедуру, позволяющую инициализировать строку.

Чтобы предоставить память для сохранения строки, допустимо воспользоваться процедурами динамического распределения памяти. Обязательно нужно учесть достаточный строчный размер:

char *name;

name = (char*)malloc(10);

scanf("%9s", name);

Здесь строка вводится функцией scanf(), и необходимо помнить, что её размер составляет максимум девять знаков. Оканчиваться строка должна комбинацией \0. Но следует отметить, что функция scanf() служит больше для задания не строчных знаков, а слов. Существует ещё формат "%s", позволяющий выполнить ввод строки вплоть до очередного пустого символа, например, пробела, табуляции или символа перевода строки. А, чтобы ввести всю строку вместе с пробелами, можно применить такой вариант:

char gets(char );

или её аналог:

«Операции со строками» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

char gets_s(char );

Аргументом функции пересылается указатель строки, куда выполняется ввод. Функция выдаёт запрос пользователю на ввод строки, которую она последовательно пересылает в массив до момента нажатия пользователем клавиши Enter.

Чтобы вывести строку, возможно использование указанных выше методов:

printf("%s", str); // str — является указателем строки.

Или в урезанном виде:

printf(str);

Можно применить так же:

int puts (char *s);

Она выполняет печать строчных данных S и перевод курсора к новой строке (что отличает её от printf()). Функцию puts() ещё возможно применить, чтобы вывести строковые константы, которые закрыты в кавычки.

Чтобы выполнить ввод символьного знака, необходимо применить соответствующую функцию:

char getchar();

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

В качестве функции, используемой для вывода символов, применяется эта:

char putchar(char);

Она выполняет возврат значения выводимого символа и отображает на мониторе символ, который передаётся как аргумент.

Для внедрения в строковую константу необходимых служебных символов, применяются специальные символьные комбинации. Например, если надо внедрить в строку символику «двойные кавычки», перед ним нужно вставить знак обратный слеш: \». Под строковые константы отводится статическая память. Адрес начала символьного набора, заключённого в двойные кавычки, воспринимается в качестве адреса строки. Строковые константы могут использоваться для формирования пользовательского диалога в командах типа printf(). Когда определяется символьный массив, нужно обозначить компилятору требуемый для массива объём памяти.

char m82;

Компилятор способен сам определить объём символьного массива, когда инициализация массива задаётся при объявлении как строковая константа:

char m2="Гористые скалы уснули весной.";

char m3={«Т», «р», «о», «п», «ы», «в», «г», «о», «р», «а», «х», «п», «а», «х», «н», «у», «т», «в», «о», «д», «о», «й»,'\0'};

В данном случае m2 и m3 выступают как указатели на начальные компоненты массивов:

m2 аналогично &m20

m20 обозначает ‘Г’

m21 обозначает ‘o’

m3 обозначает &m30

m32 обозначает ‘о’

Когда объявляется символьный массив, и он инициализируется как строковая константа, имеется возможность явного указания его размера. Но при этом заявленный объём массива обязан превышать объём строковой константы, которая его инициализирует:

char m280=" Гористые скалы уснули весной.";

Чтобы задать строку, можно сделать так:

char *m4;

При этом, если объявляется массив переменной m4, то возможно назначить адрес массива:

m4 = m3;

*m4 аналогично m30='Т'

*(m4+1) аналогично m31='р'

В данном случае m3 выступает как фиксированный указатель. Изменять m3 невозможно, поскольку это влечёт за собой смену адреса массива в памяти. Для m4 таких ограничений нет. К указателю может применяться процедура смещения на очередной символ:

m4++;

Массивы символьных строк

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

char *poet4 = {«Мороз и солнце!», «День чудесный!», «Ещё ты дремлешь» , «Друг прелестный!»}

Здесь poet это массив, который состоит из четырёх указателей на строки символов. Все символьные строки являются массивами символов, это объясняет наличие четырёх указателей на массивы. При этом poet0 указывает на начало первой строки:

*poet0 является 'М'.

Выполнять инициализацию требуется по правилам, которые установлены для массивов. Если текстовая информация заключена в кавычки, то это равнозначно инициализации всех строк в массиве. Смежные символьные наборы должны разделяться запятыми. Необходимо заметить, что имеется возможность явного задания размеров символьных строк как указано ниже:

char poet 4 23;

Дата написания статьи: 12.12.2019
Получи помощь с рефератом от ИИ-шки
ИИ ответит за 2 минуты
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot

Изучаешь тему "Операции со строками"? Могу объяснить сложные моменты или помочь составить план для домашнего задания!

AI Assistant