Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > поиск по неполному совпадению в структуре данных


Автор: pharrell 27.6.2006, 12:20
помогите пожалуйста написать функцию поиска по неполному совпадению в структуре,в Visual C++6. 

Автор: _hunter 27.6.2006, 13:35
поможем.
спрашивай что не понятно 

Автор: pharrell 27.6.2006, 13:49
Не получается сделать так чтобы при поиске с неполным совпадением в структуре(т.е. названия) выводилось название и т.д.Получилось сделать только при полном совпадение названия  вот функция.
void find()
    {
        char sig[3];
        counter();
        j=0;
        sig[0]='n';
        sig[1]='o';
        sig[2]='\0';
        struct recept tmp;                                     
        printf ("\n Enter recept name:  "); 
        scanf ("%s", &tmp.name);                          
        
        for (i=0; i<=n; i++)
        {
            if (strcmp(tmp.name, sig)!=0)                         
            {
            if (strcmp(tmp.name,book[i].name)==0)            
                {
                    book[j]=book[i];                               
                }
                else
                {
                    goto end;                                         
                }
            }
            
        j++;
end:;
        }
    n=j;
    printf ("Searching result: \n\n");
    if (j==0)
    {
        printf("No recepts\n\n");
    }
    else
    {
        i=j;
        output();
    }
    getch();
    } 

Автор: _hunter 27.6.2006, 14:49
так что тебе не понятно? 

Автор: pharrell 27.6.2006, 15:26
Как сдесь сделать так чтобы выводилась вся строка если в ней содержится определенный образец,который меньше чем эта строка?Более обший случай:У нас есть  строки,мы вводим слово(или часть слова) и если оно содержится в этой строке то она выврдится.  

Автор: _hunter 27.6.2006, 15:38
подстроку в строке ищет strstr
чем "более общий случай" отличается от менее общего -- не поняытно... 

Автор: pharrell 27.6.2006, 18:36
Можешь написать пример. 

Автор: _hunter 27.6.2006, 18:52
могу 

Автор: Rockie 27.6.2006, 20:25
Цитата(pharrell @  27.6.2006,  18:36 Найти цитируемый пост)
Можешь написать пример. 

Код
#include <iostream>
#include <conio>

using namespace std;

int main(void)
{  char * str = "Borland International";
   char substring[81];

   cout<<str<<"\nstring: ";
   cin>>substring;

   if(strstr(str,substring)!=NULL) cout<<"it is there";
   else cout<<"no such substring";

   getch();
   return 0;
}
 

Автор: Mad 27.6.2006, 20:38
Цитата(pharrell @  27.6.2006,  12:49 Найти цитируемый пост)
void find()
    {
        char sig[3];
        counter();
        j=0;
        sig[0]='n';
        sig[1]='o';
        sig[2]='\0';
        struct recept tmp;                                     
        printf ("\n Enter recept name:  "); 
        scanf ("%s", &tmp.name);                          
        
        for (i=0; i<=n; i++)
        {
            if (strcmp(tmp.name, sig)!=0)                         
            {
            if (strcmp(tmp.name,book[i].name)==0)            
                {
                    book[j]=book[i];                               
                }
                else
                {
                    goto end;                                         
                }
            }
            
        j++;
end:;
        }
    n=j;
    printf ("Searching result: \n\n");
    if (j==0)
    {
        printf("No recepts\n\n");
    }
    else
    {
        i=j;
        output();
    }
    getch();
    } 

Код

        {
            if (strstr(tmp.name, sig))                    
            {

 

Автор: pharrell 27.6.2006, 21:19
Спасибо большое. 

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