Тема: Функции работы со строками. Функции преобразования <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 с.