Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на С.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

Функции изменения регистра строки.

Как вы помните, в задаче к прошлому уроку требовалось написать функцию, которая переводит все символы строки в нижний регистр. Для этой задачи тоже есть готовая функция – strlwr(). Ко всему прочему имеется и функция, которая переводит все символы в верхний регистр – strupr().

Данные функции принимают один параметр – строку, которую необходимо перевести в тот или иной регистр. Рассмотрим пример их использования.

Листинг 15.5

#include <stdio.h>

#include <string.h>

int main(void) {

char str[] = "HeLLo WoRlD";

printf ("%s\n",str);

strlwr(str); //переводим строку в нижний регистр

printf ("%s\n",str);

strupr(str); //переводим строку в верхний регистр

printf ("%s\n",str);

return(0);

}

Результат работы программы

Рис.5. Изменение регистра строки функциями strupr() и strlwr().

Функции объединения строк.

В файле string.h описаны две функции для объединения строк.

Первая strcat() принимает две строки, и приписывает вторую в конец первой. Т.е. результат склеивания двух строк окажется в той, что записана в первом аргументе. Причем нулевой символ ‘\0’ добавляется автоматически в конец новой, получившейся строки. Небольшой иллюстрирующий пример:

Листинг 15.6

#include <stdio.h>

#include <string.h>

int main(void) {

char str1[50] = "hello",

str2[]="world";

strcat(str1," "); //приклеиваем к str1 пробел получаем

//в str1 строку "hello "

strcat(str1,str2);//приклеиваем к str1 строку str2

printf("%s\n", str1); //выводим str1

return(0);

}

Рис.6. Склеивание двух строк функцией strcat().

Вторая функция strncat() отличается от предыдущей, наличием еще одного аргумента, означающего, какое количество символов с начала второй строки следует приклеить к первой строке. Немного переделаем наш предыдущий пример.

Листинг 15.7

#include <stdio.h>

#include <string.h>

int main(void) {

char str1[50] = "hello",

str2[]="world";

strcat(str1," "); //приклеиваем к str1 пробел получаем //в str1 строку "hello "

strncat(str1,str2,3); //приклеиваем к str1 3 первых //символа из str2

printf("%s\n", str1); //выводим str1

return(0);

}

Рис.7. Использование функции strncat().

Ничего удивительного. Все работает именно так, как и ожидалось.

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

Листинг 15.8

#include <stdio.h>

#include <string.h>

int main(void) {

char str1[10] = "hello",

str2[]=" world";

strcat(str1,str2);

printf("%s\n", str1);

return(0);

}

Хотя программа и скомпилируется, но при выполнении возникнет ошибка.

На этом сегодняшний урок мы закончим. Мы рассмотрели лишь некоторые функции, описанные в заголовочном файле string.h. Есть там еще несколько очень интересных и полезных функций, но о них мы поговорим чуть позже, когда познакомимся с указателями.

Отдельного практического задания к этому уроку не будет. Проверьте с помощью стандартных функций программы, написанные к прошлому занятию. А 3,4 и 5 задачи перепишите с использованием стандартных функций.