Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие С++- не книжкой_новое.doc
Скачиваний:
4
Добавлен:
04.11.2018
Размер:
765.44 Кб
Скачать

Void main()

{

cout<<”Enter string ”;

char stroka[dlin];

cin.getline(stroka,dlin);

char *slova[dlin/2]; //массив указателей для хранения

//слов строки

char *razd=".,:;!? ";// указатель на строку,

//состоящую из разделительный символов

char *glas="aeoiuy"; // указатель на строку,

//состоящую из гласных

int k=0; //определили индекс для массива slova

slova[k]=strtok(stroka,razd); // выделили первое слово

while (slova[k])// пока выделенная из строки

//лексема не равна NULL

{

if (strchr(glas,*slova[k])!=NULL)

cout<<slova[k]<<"\n";//проверили, является ли первая

// буква слова s1[k] гласной

slova[++k]=strtok(NULL,razd); // выделили очередное

//слово.

}

}

В данном решении задачи для хранения слов мы использовали массив, взяв за его размерность максимально возможную – размерность исходной строки, деленную пополам, то есть предполагая, что все слова строки состоят из одной буквы и разделены одним разделителем. Однако, в данной задачи не предполагается дальнейшая обработка выделенных из строки слов, поэтому нет необходимости сохранять их в массиве. Поэтому целесообразнее определять массив указателей char * s1[dlin/2], а определить лишь один указатель char *s1, который и использовать для обработки очередного выделенного слова.

  1. Дана текстовая строка. Вывести на печать все ее слова в таком порядке: все однобуквенные, потом все двухбуквенные, потом все трехбуквенные и т.д. до слова максимальной длины, используя функции strtok, strlen.

  2. Даны текстовая строка и слово (например, ba). Напечатать все слова, входящие в эту текстовую строку, начинающиеся с букв заданного слова (например, bak, barber, baab, baalam), используя функции strtok, strlen, strnicmp.

  3. Дана текстовая строка. Сформировать строку, состоящую из последних букв слов заданной текстовой строки, используя функции strtok, strlen и вывести ее на экран. Например, если задана строка adcd ef ghi jklmn, то на экран должно быть выведено слово dfin.

  4. Даны текстовая строка и слово (например, ab). Напечатать все слова, входящие в эту текстовую строку, заканчивающиеся на буквы заданного слова (например, abcdab, ab, kab), используя функции strtok, strlen, strcmp.

  5. Даны текстовая строка и слово. Определить, какие слова из этой текстовой строки предшествуют заданному слову в лексикографическом порядке, используя функции strtok, strcmp.

  6. Дан набор слов и произвольная текстовая строка. Выбрать из текстовой строки все слова, входящие в данный набор и вывести их на печать, используя функции strtok, strcmp.

  7. Дана текстовая строка. Определить, упорядочены ли ее слова по алфавиту, указать первое слово, нарушающее порядок, используя функции strtok, strcmp.

  8. Из заданной текстовой строки распечатать только те слова, которые начинаются и оканчиваются одной и тоже буквой, используя функции strtok, strlen.

  9. Из заданной строки, распечатать все слова без повторений, используя функции strtok, strcmp.

  10. Дана текстовая строка. Сформировать строку, состоящую из третьих букв каждого слова заданной текстовой строки, используя функции strtok, strlen, и вывести ее на экран. Например, если задана строка adcd ef ghi jklmno, то на экран должно быть выведено слово сil.

  11. Дана текстовая строка. Распечатать строку, состоящую из слов заданной, расположенных в лексикографическом порядке, используя функции strtok, strlen, strnicmp.

  12. Дана текстовая строка. Распечатать из нее все слова, имеющие наименьшую и наибольшую длину, используя функции strtok, strlen.