•В языках Си/Си++ нет специально определенного строкового типа данных. Символьные строки организуются как массивы символов, последним из которых является символ \0..
Строка описывается как символьный массив:
char STR[20];
char S[10]="cTpoKa"; -инициализация значения
char S[]="cTpoKa";
char S [10] = { 'с' ,'Т',‘р',‘о',‘К','а','\0'} ;
char STR[20];
char S[10]="cTpoKa"; -инициализация значения
char S[]="cTpoKa";
char S [10] = { 'с' ,'Т',‘р',‘о',‘К','а','\0'} ;
Отдельные символы строки идентифицируются индексированными именами.
S [ 0 ] = 'С' , S[5]='a'.
S [ 0 ] = 'С' , S[5]='a'.
Пример 1. Обработка строк обычно связана с перебором всех символов от начала до конца. Однако, ввод-вывод строк удобно делать с помощью функций gets() и puts() из библиотеки <string.h>
В примере с помощью цикла символы в строке s1 заменяются звёздочкой. Признаком конца перебора символов является обнаружение нулевого символа в конце строки. То же самое можно сделать с помощью указателя ( в программе - символы в строке s заменяются на ^).
На экран выводится следующее:
На экран выводится следующее:
Пример 2. Использование библиотеки <string.h>
Многие нужные функции реализованы в библиотеке <string.h>. При необходимости можно ознакомиться с описанием функций здесь.
В примере ниже функция strchr(p,c) возвращает указатель на первый символ строки, на которую указывает указатель р, совпадающий со значением переменной с.
В конце программы строка выводится с найденного символа, и выводится на экран его номер.
Пример 3. Обработка строк в функции
Эта программа делает такую же замену, как в примере 1. Однако, это действие оформлено в виде функции, в которую передаются указатель на строку и символ для замены.
Пример 3. Обработка строк в функции
Эта программа делает такую же замену, как в примере 1. Однако, это действие оформлено в виде функции, в которую передаются указатель на строку и символ для замены.
Задачи для самостоятельного решения
1. Написать программу с функцией, которая подсчитывает, сколько раз в данной строке
встречается данная буква. В функцию передается буква и указатель на строку.
2. Написать программу с функцией поиска первого вхождения шаблона в текст. В качестве
первого параметра функция принимает указатель на строку, в которой нужно искать шаблон. В
качестве второго параметра указатель на строку-шаблон, которую нужно найти. Функция
возвращает позицию первого вхождения строки-шаблона, если он присутствует в строке
(помните, что в C++ принято считать с 0), и -1, если шаблона в тексте нет. В основной
программе инициализировать строку при описании, строку-шаблон вводить с клавиатуры.
Проверить правильность работы написанной функции с помощью функции strstr(s1,s2) из
библиотеки <string.h>
Контрольный пример:
Строка "moja mama varit mamalygu na balkone"
Шаблоны: "mama" , "mamalygu"