Найти в строке слова, которые содержат все буквы слова - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дана строка символов, состоящая из слов, и слово. Разделители - пробелы. Найти в строке слова, которые содержат все буквы слова.
int main()
{
char s[100],x1[10];
char *ptr,*p;
int k,length,i,j,c;
size_t w=0;
 
puts("Enter a string:" );
gets(s);
puts("Enter the world:" );
gets(x1);
 
w=strlen(x1);
ptr=strtok(s," ");
 
 while(ptr)
 {
    .....
     ptr=strtok(NULL," ");  
 }
Подскажите, как в цикле организовать проверку? Или в этой задаче нужно использовать функции strstr (strchr)?

Решение задачи: «Найти в строке слова, которые содержат все буквы слова»

textual
Листинг программы
//цикл проверки букв тестового слова в очередном из строки
 for(i=0;i<w; i++)
{
  if( strchr(ptr,x1[i])==NULL ) break; //символ не найден  в слове
}
if( i == w ) //все буквы тестового слова присутствуют в очередном слове из строки
printf("\n%s",ptr);// печатаем подходящее под условие слово

Объяснение кода листинга программы

В представленном коде выполняется следующая последовательность действий:

  1. Начальная инициализация:
    • В переменной w хранится количество букв в тестовом слове.
    • Переменная i инициализируется нулем и будет использоваться в качестве счетчика.
    • Переменная ptr содержит строку, в которой необходимо найти слово, содержащее все буквы тестового слова.
    • В переменной x1 хранится тестовое слово.
  2. Цикл проверки букв тестового слова в очередном из строки:
    • Цикл начинается с проверки if(strchr(ptr,x1[i])==NULL). Эта функция ищет первый символ из строки x1[i] в строке ptr. Если этот символ не найден, то цикл прерывается с помощью оператора break.
    • Если условие if не выполняется, то это означает, что текущий символ из тестового слова найден в строке ptr. Значит, цикл продолжает работу.
  3. Окончание цикла и вывод результата:
    • Если цикл не был прерван оператором break, то это означает, что все буквы тестового слова найдены в строке ptr. В этом случае выполняется printf(\n%s,ptr);, и на экран выводится найденное слово. Таким образом, данный код выполняет поиск в строке ptr слов, содержащих все буквы тестового слова x1. При этом найденное слово выводится на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.444 из 5
Похожие ответы