Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Рацеев С.М. Программирование на языке Си.pdf
Скачиваний:
366
Добавлен:
23.03.2016
Размер:
1.65 Mб
Скачать

}

return 0;

}

Преимущества:

очень быстрая скорость алгоритма;

не портит строку.

Недостатки:

работает только со строками, определенными как массив сим-

волов (char s[N]);

если поменять символы в выделенном слове word, то соответствующие символы будут изменены в строке-предложении sentence.

8.8.Задачи

1.Вывести на экран все цифры, строчные и прописные латинские буквы с их кодами.

2.Дано четное число n > 0 и символы c1 и c2. Вывести строку длины n, которая состоит из чередующихся символов c1 и c2.

3.Дана некоторая строка. Вывести строку, содержащую те же символы, но расположенные в обратном порядке.

4.Дана строка s размером n. Записать в строку t размером 2n символы строки s, между которыми вставлено по одному пробелу.

5.Дана строка s. Написать логическую функцию, которая определяет, содержится ли в строке s два рядом стоящих одинаковых символа.

6.Дана строка s. Подсчитать частоту вхождений каждого символа

встроку s.

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

8.Дана строка, изображающая двоичную запись целого положительного числа. Вывести строку, изображающую десятичную запись этого числа.

153

9.Даны строки s и s0. Удалить из строки s первую подстроку, совпадающую с s0.

10.Даны строки s и s0. Найти количество вхождений строки s0 в строку s.

11.Заменить в строке каждую серию подряд идущих пробелов на один пробел.

12.Дана строка-предложение. Найти количество слов в строке.

13.Написать функцию void WordN(char *s, char *t, int k), которая k-е слово строки s записывает в строку t.

14.Дана строка-предложение. Вывести строку, содержащую эти же слова, разделенные одним пробелом и расположенные в обратном порядке.

15.Дана строка-предложение. Вывести на экран все слова данной строки в алфавитном порядке.

16.Дана некоторая строка. Выделить в данной строке все целые неотрицательные числа и вывести их на экран.

17.Пусть s1, s2 и t – некоторые строки. Найти количество символов строки t (без учета символа ‘\0’), которые присутствуют

a) одновременно в строках s1 и s2; б) хотя бы в одной из строк s1 или s2; в) ни в одной из строк s1 и s2.

18.Пусть SET – некоторое множество символов. Требуется в строке s подсчитать количество различных символов, принадлежащих множеству SET.

Задачи для самостоятельной работы

19.Дано целое число n, 1 ≤ n ≤ 26. Вывести n последних строчных (то есть маленьких) букв латинского алфавита в обратном порядке, начиная с буквы ‘z’.

20.Определить, сколько различных букв встречается в слове s.

21.Дано целое неотрицательное число. Записать двоичное представление данного числа в строковую переменную.

22.Дана строка, изображающая десятичную запись целого положительного числа. Вывести строку, изображающую двоичную запись этого же числа.

154

23.Заменить в строке каждую серию подряд идущих символовразделителей между словами на один пробел.

24.Даны строки s и s0. Удалить из строки s последнюю подстроку, совпадающую с s0. Если совпадающих подстрок нет, то вывести строку s без изменений.

25.Дана строка-предложение. Найти количество слов, которые содержат хотя бы одну букву ‘А’.

26.Дана строка-предложение. Найтиколичество симметричных слов.

27.Дана строка-предложение. Вывести строку, содержащую эти же слова, разделенные одним пробелом, и расположенные в алфавитном порядке.

28.Написать функцию void FillStr(char *s, char *t, int n), которая строку t заполняет n повторяющимися копиями строкишаблона s.

29.Удалить из строки s группы символов, расположенные между скобками ‘(‘ и ‘)’. Сами скобки тоже должны быть исключены. Предполагается, что внутри каждой пары скобок нет других скобок.

155