Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2014, 13:43   #1
Иван1996
 
Регистрация: 20.11.2013
Сообщений: 4
По умолчанию В файле-словаре найти и распечатать слова, которые могут быть полностью составлены из других слов словаря с помощью конкатенации,

В файле-словаре найти и распечатать слова, которые могут быть полностью составлены из других слов словаря с помощью конкатенации, например: “БАЛКОН” = “БАЛ” + “КОН”; “БАРСУК” = “БАР” + “СУК”
Код:
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <io.h>
#include <stdio.h>
#define bzero






int main()
{
  // сначала отрываем файл file
  // и читаем данные в массив
  char *dict[100];
 
  int i = 0;
  FILE* file;
file=fopen("D:\Games\\lol.txt","rt");
while (!feof(file)) {

    char buf[64];
    fscanf(file, "%s", buf);
     dict[i] = new char[strlen(buf) + 1];
    strcpy(dict[i], buf);
	
	
   ++i;
   
  }
  int n = i; // n количество элементов в массиве
 
  // ну и тут уже ищем в массиве чего так да как.
  for (i = 0; i < n;) {
    char buf[32];
    bzero  (buf, 32); // забить нулями
    strcat(buf, dict[i]);
    int j;
    for (j = 0; j < n;) {
      strcat(buf, dict[j]);
      int k;
      // на этом этапе имеем в buf результат конкатинации двух строк
      for (k = 0; k < n; ++k) {
         if (strcmp(dict[k], buf) == 0) { // если одно из слов совпало с результатом конкатинации
           printf("%s\n", dict[k]);
         }
      }
      // освободим буфер от второго слова в нем.
      k = strlen(dict[j]);
      bzero(&buf[k + 1], 32 - k - 1);
    }
  }
 
  // в конце программы надо освободить память.
  for (i = 0; i < n; ++i) {
    free(dict[i]);
  }
  return 0;
}
можете как-то поисправлять код) чтобы он стал рабочеспособным) пожалуйста)
Иван1996 вне форума Ответить с цитированием
Старый 09.04.2014, 13:46   #2
Иван1996
 
Регистрация: 20.11.2013
Сообщений: 4
По умолчанию

а то он ничего не выводит)
Иван1996 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
в ряду символов определить слова, которые могут быть получены разворотом другого слова этой строки (Паскаль) Mr. J. Паскаль, Turbo Pascal, PascalABC.NET 9 06.04.2014 08:15
язык С В данном словаре найти все пари слов(анаграммы), при чтении каждого из них в обратном порядке образуется другое слово пары FYNZIK Помощь студентам 0 27.03.2014 22:04
Дан текст. Слова в тексте отделены одним пробелом, в конце текста точка. Распечатать все слова текста, которые содержат..... Anton94.by Паскаль, Turbo Pascal, PascalABC.NET 1 06.02.2012 23:36
В заданном текстовом файле подсчитать частоту использования каждого слова из словаря (другого текстового lineico Помощь студентам 4 09.05.2011 19:35
поиск слов в файле-словаре php nuevegramodelamor Помощь студентам 0 21.11.2010 18:46