Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > Задачка на строки


Автор: Asgaroth 25.2.2005, 18:16
В славаре(вводится юзером) найти слова, котор могут быть полностю сложеными с других слов(ну там "БАРСУК" = "БАР"+"СУК"). Ну тоесть юзер должен ввести и "барсук" и "бар" и "сук", чтобы это слово засветилось... Пожалуста напишите мне эту прогу!!!

Автор: Ni@m 3.3.2005, 01:20
допестим, что словарь у тебя как текстовый файл. слова идут друг за дружкой разделены символом переноса каретки.

программу пишу без проверок на открытие файла и так делее. Это не связано со строками. разберешся.
Код


#include "stdio.h"
#include "string.h"

char** searchByKey(char *key)
{
 FILE *dsc = fopen("dict","r");
 size_t read_bytes(1);
 char *str,**hash;
  int hash_size(0),size(0);
 while (read_bytea !=0)
 {
   read_bytes = fread(str,256,1,dsc);
   fseek(dsc,read_bytes,SEEK_CUR);
   if (strstr(str,key) != NULL)
   {
          *hash = (char **)realloc(hash,hash_size+=strlen(str));
          hash[size] = (char *)malloc(strlen(str));
          strcpy(hash[size++],str);
   }  
 }
   *hash = (char **)realloc(hash,sizeof(NULL));
   hash[size] = (char *)malloc(sizeof(NULL));
   strcpy(hash[size],NULL);
}
int main()
{
     char **found, *key;
     sccanf("%s",key);
     found = searchByKey(key);
     for(int i=0;found[i]!=NULL;i++)
     {
          printf("%s\n",found[i]);
     }
}

это все вроде должно работать. не проверял, писал сразу в форум

Автор: Asgaroth 5.3.2005, 12:57
спасибо еонечно, но почти все из функций в этой проге мы не учили. и там не файл, а чисто поод досом юзер вводит слова, после ккаждого Ентер, а прога должна думать... сори шо сразу не написал!

Автор: Asgaroth 7.3.2005, 23:12
или помогите в этой проге раздуплиться... что значит "**"? и что значит hash и realloc?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)