Перечислите все слова данного предложения, которые состоят из тех же букв, что и первое слово предложения. Метод решения Вырезаем из исходной строки слова, определяя их по пробелам. Сравниваем каждое новое вырезанное слово с первым на совпадение букв, с помощью функции EqWord. Программа #include <stdio.h> // подключение библиотек #include <conio.h> #include <string.h> #include <iostream.h> int EqWord( char *s1, char *s2){ // функция сравнения двух слов int result=1, flag; for (int i = 0; i < strlen(s1); i++){ flag = 0; // переменная, определяющая встретился ли символ в слове for (int j = 0; j < strlen(s2); j++) if (s1[i] == s2[j]) {flag=1;} if (!flag) {result=0;} // символ не встретился, буквы в словах не совпадают } return result; } void main(){ clrscr(); // очистка экрана char FirstWord[50]; char NextWord[50]; char *s="You - first word; Find: uoy Yuo Uoy oYu ouY you "; // предложение int c; с=strсhr(s,' ')-s; // находим позицию пробела FirstWord[c]=''; strncpy(FirstWord, s, c); // вырезаем слово до пробела cout << "First Word:" << FirstWord << endl; while ( strlen(s) >= 1 ){ // вырезаем из строки слова, пока ее длина > 1 s = s + c + 1; if (strlen(s) <=1) {break;} // закончить цикл если длина строки < 1 с=strсhr(s,' ')-s; // позиция пробела NextWord[c]=''; strncpy(NextWord, s, c); // получаем следующее сдлово из строки if (EqWord( FirstWord, NextWord)) {cout << NextWord << endl;}; // сравниваем слова } } Результат работы программы
Ключевые слова:
слова, первое слово, похожие слова, одинаковые буквы
|
|||