Лабораторная работа №5

 

Тема: Функции работы со строками. Функции преобразования <file:///D:\Documents\CD_RW\Disk_OOP\GL3.htm>

 

Строковые переменные представляют собой массив символов и объявляются следующим образом: char s[15];

где 15 - максимально возможное число символов в строке. Обращение к отдельному символу строки происходит путем указания индекса (порядкового номера символа строке), начиная с нуля.

Например, выведем на экран второй символ в строке:

s=”ABCD”;

printf("%c",s[1]);

 

В результате выполнения фрагмента кода на экране будет отображен символ В

Для использования функций работы со строками необходимо добавить в раздел #include ссылку на заголовочный файл <string.h>

Функция strlen(s) возвращает длину строки s.

Пример: Ввести строку и подсчитать количество символов в ней.

 

#include<stdio.h>

#include<conio.h>

#include<string.h>main()

{s[15]; scanf("%s",&s); //вводим трокуa; a=strlen(s);

printf("%d",a);//выводим на экран количество символов();

}

 

Поскольку строки являются массивом символов, для их обработки часто используются циклы.

Еще пример:

Составить программу, которая подсчитывает в предложении количество символов “k”.

 

#include<stdio.h>

#include<conio.h>

#include<string.h>main()

{s[15];("%s",&s);a=0,i;(i=0;i<strlen(s);i++)

if (s[i]=='k') a++;("%d",a);();

}

 

Функция getch() возвращает нажатый символ (или его код) без вывода на экран.

Пример: выводить на экран нажатый символ и его код, пока не нажата клавиша Esc

 

#include<stdio.h>

#include<conio.h>main()

{ch;

{ = getch();

printf("%c -> %d\n",ch,ch); //печать символа и его кода с последующим

переходом на новую строку

}

while (ch!=27); //пока не нажата клавиша Esc

getch();

}

Функция strlwr(s) преобразует строчные символы строки в прописные (обрабатывает только буквы латинского алфавита). Функция strupr(s) производит обратное преобразование - прописные символы строки в строчные.

Пример: ввести строку и преобразовать ее к верхнему регистру.

 

#include <stdio.h>

#include <string.h>

#include <conio.h>main(void)

{st[15];("%s",&st);(strupr(st));

getch();

}

 

Функция strchr(s,ch) выполняет поиск символа ch в строке s и возвращает указатель на первый найденный символ или, если символ найден, null.

Функцию strrchr(s,ch) выполняет поиск символа ch в строке s и возвращает указатель на место последнего появления в строке заданного символа:

Пример: Ввести строку текста и вычислить номер позиции, в которой первый раз встречается буква ‘А’.

 

#include <stdio.h>

#include <string.h>

#include <conio.h>main(void)

{s[64];("%s",s);*ptr;

= strchr(s, 'A');(*ptr)(" %d\n", ptr - s+1);

else("Символ не найден\n");();

}

 

Функция strcat(s1,s2) объединяет строки s1 и s2 и записывает результат в строку s1.

Пример: Объединить вместе две строки.

 

#include <stdio.h>

#include <string.h>

#include <conio.h>main(void)

{

char s1[]="abc"; //задание первой текстовой константы

char s2[]="def"; //задание второй текстовой константы

strcat(s1,s2);("%s",s1);();

}

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

Преобразует символьную строку в значение типа floatПреобразует символьную строку в значение типа intПреобразует символьную строку в значение типа long intПреобразует символьную строку в значение типа doubleПреобразует символьную строку в значение типа long int

 

№ вар Задание № вар Задание
1 Составить программу, которая подсчитывает количество предложений в тексте (считаем, что предложения разделяются точками и восклицательными и вопросительными знаками). 16 Ввести текст. После каждого слова записать в скобках его длину.
2 Ввести строку текста на английском языке строчными буквами. Изменить его таким образом, чтобы каждое слово начиналось с большой буквы. 17 Задана строковая последовательность ‘15*3+7’. Вычислить значение выражения
3 Ввести предложение. Вывести на экран цепочку букв, с которых начинаются слова предложения. 18 Ввести предложение. Вывести на экран цепочку букв, которыми заканчиваются слова предложения.
4 Ввести строку текста и вычислить номер позиции, в которой первый раз встречается буква ‘е’ 19 Ввести текст и подсчитать, сколько раз в нем встречается удвоенная буква 'м'
5 Задана строковая последовательность ‘15+3*5’. Вычислить значение выражения 20 Ввести текст. После каждого предложения записать в скобках количество слов в нем.
6 Ввести строку текста на английском языке строчными буквами. Изменить его таким образом, чтобы каждое предложение начиналось с большой буквы. 21 Задана строковая последовательность ‘15/3+3’. Вычислить значение выражения
7 Ввести текст. После каждого предложения записать в скобках количество символов в нем, включая пробелы. 22 Ввести произвольную строку, содержащую цифровые и буквенные символы. Подсчитать, сколько цифровых содержится в введенной строке
8 Ввести текст. Удалить из него слова с четными порядковыми номерами. 23 Ввести строку текста и вычислить номер позиции, в которой последний раз встречается буква ‘и’
9 Ввести текст и подсчитать, сколько раз в нем встречаются запятая и точка 24 Задана строковая последовательность ‘15*3’. Вычислить значение разности
10 Ввести произвольную строку, содержащую цифровые и буквенные символы. Подсчитать, сколько нецифровых содержится в введенной строке 25 Ввести текст. После каждого предложения записать в скобках количество символов в нем, исключая пробелы.
11 Ввести текст. После слов с нечетными порядковыми номерами вставить знак вопрса. 26 Ввести текст. Удалить из него слова с нечетными порядковыми номерами.
12 Ввести текст. Определить на какую букву начинается каждое третье слово 27 Ввести текст. Определить на какую букву заканчивается каждое второе слово
13 Ввести произвольную строку, подсчитать, сколько слов в заданной строке оканчиваются буквой ‘я’ 28 Ввести произвольную строку, подсчитать, сколько слов в заданной строке начинаются буквой ‘к’
14 Ввести строку текста и вычислить номер позиции, в которой последний раз встречается буква ‘F’ 29 Ввести текст. Определить, на какую букву начинается пятое слово.
15 Ввести текст. Заменить каждое второе слово многоточием. 30 Ввести произвольную строку, содержащую цифровые и буквенные символы. Удалить из текста все цифровые символы

 


 


ЛИТЕРАТУРА

 

1. Павловская Т.А. С/С++. Программирование на языке высокого уровня. - Спб.: Питер, 2001. - 464 с.

2. Пратта С. Язык программирования С++. Лекции и упражнения - М.: Диа-Софт, 2003. - 656 с.

.   Страуструп Б. Дизайн и эволюция языка C++. Объектно-ориентированный язык программирования. - М.: ДМК-Пресс, 2000. - 448с.

.   Шилд Г. С/С++. Справочник программиста - М.: Вильямс, 2000. - 448 с.

.   Шмидский Я.К. Программирование на языке С/С++ - М.: Диалектика, 2003. - 352 с.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: