Лабораторная работа №6.

Лабораторная работа №6.
Тема: РАБОТА СО СТРОКАМИ СИМВОЛОВ

 

Вы не можете скачивать файлы с нашего сервера


Цель работы : Получить начальные навыки написания программ на языке программирования C, работающих со строками символов.
Оснащение: IBM PC, Borland C`` v5.02

Краткие теоретические сведения

Чаще всего строки символов описываются как массивы:
char *a[40], *b;
В переменной a можно хранить строки с максимальной длиной 39 символов. Один байт в строках символов отдается под нулевой символ.
Переменная b является указателем на строку символов:
b="Кафедра ИПУ";

Основные функции для работы со строками и описанные в библиотеке string.h:

1. strcpy
Прототип функции strcpy:
char* strcpy(char *target, const char *source);
Функция копирует строку source в строку target. Функция предполагает, что целевая строка имеет размер, достаточный для того, чтобы вместить содержимое строки-источника.
П р и м е р 6.1:
char name[41] ;
strcpy(name, "Borland C++ 5");

2. strdup
Копирует одну строку в другую, при этом отводит необходимое количество памяти для целевой строки. Прототип функции strdup:
char* strdup(const char *source);
Функция копирует строку source и возвращает указатель на строку-копию.
П р и м е р 6.2:
char *string1 = "Монархия в Испании";
char *string2;
string2 = strdup(string1);

3. strncpy
Копирует заданное количество символов из одной строки в другую.
Прототип функции strncpy:
char * strncpy(char *target, const char *source, int num);
Функция копирует num символов из строки source в строку target. Функция не выполняет ни усечение, ни заполнение строки.
П р и м е р 6.3:
char str1[] = "Pascal";
char str2[] = "Hello there";
strcnpy(strl, str2, 5);

4. strlen
Возвращает количество символов в строке, в которое не включается нуль-терминатор.
Прототип функции strncpy таков:
size_t strlen (const char *string);
Функция strlen возвращает длину строки string. size_t — это имя, приписанное типу unsigned int оператором typedef.
П р и м е р 6.4:
char str[] = "1234567890";
size_t i;
i = strlen(str);

5. strcat
Прототип функции strcat таков:
char *strcat(char *target, const char *source);
Функция добавляет к содержимому целевой строки содержимое строки-источника и возвращает указатель на целевую строку. Функция предполагает, что целевая строка может вместить содержимое объединенной строки.
П р и м е р 6.5:
char string[81] ;
strcpy(string, "Turbo");
strcat (string, " C++");

6. strncat
Добавляет к содержимому целевой строки указанное количество символов из строки-источника. Прототип функции strncat:
char *strncat(char *target, const char *source, size_t num);
Функция добавляет к содержимому целевой строки num символов из строки-источника и возвращает указатель на целевую строку.
П р и м е р 6.6:
char strl[81] = "Hello I am ";
char str2[41] = "Ivan Petrov";
strncat(strl, str2, 5);

7. strcmp
Выполняет сравнение двух строк с учетом регистра символов. Прототип функции strcmp:
int strcmp(const char *strl, const char *str2);
Функция сравнивает строки strl и str2. Возвращает в качестве результата сравнения целую величину:
< 0 когда strl меньше, чем str2;
= 0 когда strl равна str2;0 когда strl больше, чем str2.

11. strlwr
Прототип функции strlwr:
char* strlwr (char *source);
Функция преобразует символы верхнего регистра в символы нижнего регистра в строке source. Другие символы не затрагиваются. Функция возвращает указатель на строку source.
П р и м е р 6.7:
char str[] = "HELLO THERE";
strlwr(str);

12. strupr
Прототип функции strupr:
char* strupr(char *source);
Функция преобразует символы нижнего регистра в символы верхнего регистра в строке source. Другие символы не затрагиваются. Функция возвращает указатель на строку source.

13. strchr
Определяет первое вхождение символа в строку.
Прототип функции strchr:
char* strchr(const char *target, int c);
Функция находит первое вхождение символа с в строку target. Функция возвращает указатель на символ в строке target, который соответствует заданному образцу с. Если символ с в строке не обнаруживается, функция возвращает 0.
П р и м е р 6.8:
char str[81] = "Borland C++";
char *strPtr;
strPtr = strchr(str, '+');

14. strstr
Прототип функции strstr:
char* strstr(const char *str, const char *substr);
Функция ищет в строке str первое вхождение подстроки substr. Функция возвращает указатель на первый символ найденной в строке str подстроки substr. Если строка substr не обнаружена в строке str, функция возвращает 0.
П р и м е р 6.9:
char str[] = "Hello there! how are you";
char substr[] = "how";
char *ptr;
ptr = strstr (str, substr);

Задания

1. Написать программу, которая запрашивает имя пользователя и здоровается с ним.
2. Напишите программу, которая выводит на экран сообщение в "телеграфном" стил7е: буквы сообщения должны появляться по одной, с некоторой задержкой. (функция sleep)
3. Написать программу, которая выводит на экран первую часть таблицы кодировки символов (символы с кодами от 0 до 127). Таблица должна состоять из восьми колонок и шестнадцати строк. В первой колонке должны быть символы с кодом от 0 до 15, во второй – от 16 до 31 и т.д.
4. Написать программу, которая во введенной с клавиатуры строке преобразует строчные буквы русского алфавита в прописные.
5. Написать программу, которая удаляет из введенной с клавиатуры строки начальные пробелы.
6. Написать программу, которая проверяет, является ли введенная с клавиатуры строка целым числом.
7. Написать программу, которая преобразует введенное с клавиатуры восьмиразрядное двоичное число в десятичное.
8. Написать программу, которая преобразует введенное с клавиатуры двухразрядное шестнадцатеричное число в двоичное.
9. Написать программу, которая преобразует введенное пользователем двоичное число в шестнадцатеричное.
10. Написать программу, которая вычисляет значение выражения N0O1N1O2 … OkNk , где Ni – целое одноразрядное число; Oi – один из двух знаков простейших арифметических действий: сложения гMџ_H(+) или вычитания.
11. Заданное число, от 1 до 1999, напечатать римскими цифрами X, L,V, I и т.д.
12. С клавиатуры вводится строка символов. Вывести на экран все согласные символы, встречающиеся в строке.
13. Написать программу, которая во введенной с клавиатуры строке преобразует строчные буквы латинского алфавита в прописные.
14. Написать программу, которая во введенной с клавиатуры строке преобразует буквы русского алфавита в латинские.
15. Написать программу, которая во введенной с клавиатуры строке меняет четные слова с нечетными.
16. Напишите программу, в которой с клавиатуры вводятся две строки символов. К строке с наибольшей длиной добавить текст, содержащийся в другой строке.



Обсудить на форуме

Комментарии к статье:

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

Регистрация

Реклама

Последние комментарии