Язык Си допускает использование строковых констант (последовательность символов, заключенных в “ ”).
char *str = “ string “ – компилятор статически зарезервирует 7 байт, 7-ой байт для ‘\0’, а str будет хранить адрес начала строки.
Если инициализируем строку посимвольно, то необходимо добавить в конец строки ‘\0’ :
str[0]= ‘s’
………
str[6]= ‘\0’
Для работы со строками существует специальная библиотека, описание функций этой библиотеки находятся в файле “ string.h “.
Все функции библиотеки работают со строками, оканчивающимися символом ‘\0’.
Функции работы со строками.
1. Копирование строк.
char * strcpy ( char *string1,char * string2)
Функция копирует строки, адрес которой определяется значением аргумента string2, включая ‘\0’, по адресу, определенному string1 и возвращает значение аргумента string1.
2. Склеивание строк (конкатенация).
char *strcat(char *string1, char *string2)
Добавляет строку, заданную значением аргумента string2, в конец строки, адрес которой задается значением аргумента string1, записывая в конец строки результата ‘\0’ и возвращает указатель на сцепленную строку (string1).
3. Сравнение строк.
int strcmp(char *string1, char *string2)
Возвращает 0, если string1=string2. Если 1-ая меньше чем 2-ая, то возвращает значение меньшее 0, больше 0, если 2-ая больше первой. Данная функция сравнивает строки, считая символы верхнего и нижнего регистра эквивалентными (только для латинских).
1. Длина строки.
int strlen(char *string)
Возвращает длину строки в байтах, причем нулевой байт не учитывается.
2. Поиск первого вхождения заданного символа.
char *strchr(char *string1, char ch)
Осуществляет поиск первого вхождения ch и возвращает указатель на первый его символ. Если символ не найден, то возвращается константа NULL.
3. Поиск вхождения строки в строку.
char *strstr(char *string1, char *string2)
Возвращает указатель на первое вхождение подстроки string2 в строку string1, если не найдено, то NULL.
4. Преобразование строки в нижние регистры.
char *strlwr(char *string)(только для латинских)
5. Перевод строки в нижние регистры.
char *strupr(char *string)
Ввод-вывод строк.
Можно ввести строку используя функцию scanf() со спецификацией %s, но нужно помнить, что эта функция вводит символ до первого пробельного символа. Строка-результат тоже заканчивается признаком конца строки. Существуют специальные функции ввода-вывода строк, прототипы которых описаны в studio.h.
1) Ввод строки.
char *gets(char *string)
Читает строку из стандартного входного потока stdin и помещает считанную строку по адресу, задаваемому параметром *string. Ввод заканчивается клавишей Enter. Функция возвращает адрес string, если строка считана удачно и NULL, если произошла ошибка. В строку включаются все символы, до первого встретившегося символа новой строки, не включая его. Строка-результат заканчивается ‘\0’. Поскольку в функции не задается параметр, ограничения длины строки, следует соблюдать осторожность, т.к. число символов может превысить размер памяти, отведенной под строку string.
2) Вывод строки.
char *puts(char *string)
Функция puts в отличии от printf работает быстрее. Записывает строку, адрес которой задается значением string в стандартный выходной поток stdout. В результате действия puts() всегда происходит переход на новую строку, добавляя в завершении символ конца строки(‘\0’).
Ввод-вывод символа.
Прототипы функций описаны в conio.h.
1) int getch() – с помощью этой функции из стандартного входного потока считывается очередной символ без отражения его на экране. Возвращаемое значение – код прочитанного символа.
2) int getche() – аналогично функции getch() считывает из стандартного выходного потока очередной символ (если его нет, ожидает нажатие клавиши), но с отображением его на экране.
3) void putch(int simv) – выводит символ, код которого задается значением simv в stdout.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.