Помощь - Поиск - Пользователи - Календарь
Полная версия: Поиск слов в строке
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Другие языки
-NIK-
Помогите выполнить задание. Оно собственно следующее.... дана строка длины до 255 с пробелами. Найти все такие слова которые составлены из тех же букв что и первое, т.е. буквы должны быть темеже, но встречаться могут чаще одного раза, а также в счёт регистр, т.е. заглавная буква или нет - они считаются разными МАМА МАМАМААА - второе слово нас устривает, т.к. состоит из тех же букв..... а вот если скажем а - маленькое, то не одно и тоже... Писать на С, компилятор Visual Studio
volvo
Visual Studio не держу, на Turbo C работает:

#include <string.h>
#include <stdio.h>

int main() {

  char s[255], first[20], *p, *pp;
  int i;

  gets(s);
  /*
    Функция strtok выделяет из заданной строки лексемы, разделенные одним из
    символов-разделителей, заданных вторым параметром
  */
  p = strtok(s, " ");
  // Выделили первую лексему (первое слово), и скопировали его в переменную first
  strcpy(first, p);

  // Пока строка не закончится ... 
  while(p) {
    //  ... выделять очередное слово ...
    p = strtok(NULL, " ");
    // ... и если оно существует ...
    if(p) {
      /*
        каждый символ этого слова проверять на входжение в первое слово 
        (функция strchr вернет NULL если символ НЕ был найден в строке, иначе вернется адрес символа)

        Если strchr вернула адрес, а не NULL, то увеличить счетчик букв, которые совпали с 
        буквой из первого слова
      */
      for(pp = p, i = 0; *pp; pp++) if(strchr(first, *pp)) i++;

      /*
        если число совпавших букв равно длине самого слова,
        значит, ВСЕ буквы совпали - печатаем...
      */
      if(i == strlen(p)) puts(p);
    }
  }
  return 0;
}
Гость
огромное спасибо, студия не ругается....
не мог бы ты ещё объяснить как она написана....?
Гость
и если можно за что какой массив отвечает. Спасибо заранее
Гость
хотел спросить, а что если условие было бы, что слово должно состоять из всех букв первого слова, т.е. все буквы должны обязательно встречаться как тогда следует и что именно изменить?
klem4
Такая задача решалась ТУТ

Оно ?
Гость
Да похожи, спасибо, буду знать альтернативные решения, но всё таки объясните хоть кт о- нить как выполнено это решение что за что отвечает и что делает....
volvo
Читай комментарии, я добавил...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.