欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

使用C語言怎么實現(xiàn)一個模糊搜索功能

使用C語言怎么實現(xiàn)一個模糊搜索功能?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

成都創(chuàng)新互聯(lián)是專業(yè)的大廠網(wǎng)站建設公司,大廠接單;提供網(wǎng)站建設、成都網(wǎng)站建設,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行大廠網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

//模糊搜索判斷是否符合篩選條件
int result_mohu(const gchar* key,char* str)
{
  typedef struct
  {
    char son[11];
  }Element;
  int i,j,k=0,l=0,m=0;
  //f=1為符合篩選條件
  int f=0;
 //N1為str的長度 N2為str連續(xù)子串的個數(shù)
 int N1=0,N2=0;
 N1=strlen(str);
 /*計算連續(xù)子串的個數(shù)*/
 for(i=1;i<=N1;i++)
  N2+=i;
  /*計算連續(xù)子串的個數(shù)*/
  //i控制子字符串的長度
  //j控制賦值
  //k控制新的線性結構b的下標
  //l控制子數(shù)組的首項在原數(shù)組中的位置
  //m控制即將用作賦值的str的下標
  Element *b=malloc(sizeof(Element)*N2);
  for(i=1;i<=N1;i++)
  {
    l=0;
    /*while循環(huán)內為給一個子字符串數(shù)組賦值*/
    while(1)
      {
      m=l;
      for(j=0;j<i;j++)
      {
        b[k].son[j]=str[m];
        m++;
      }
      l++;
      k++;
      if(m==N1)
        break;
      }
  }
  //挨個比對
  for(i=0;i<N2;i++)
    if(strcmp(key,b[i].son)==0)
    {
      f=1;
      break;
    }
  free(b);
  return f;
}

若返回值f=1則表示符合篩選條件,即查詢對象含有包含關鍵詞的片段。最為關鍵的循環(huán)就是按照子字符串的長度從1到N1(查詢對象字符串的長度)。

以下片段為遍歷代碼,可看可不看,核心算法都在上面。注:博主實現(xiàn)模糊搜索的環(huán)境是linux系統(tǒng)下的gtk開發(fā)。

//按學號查找界面的<查找>
void on_button_idsearch_clicked(GtkObject* widget,gpointer user_data)
{
 int i;
 int f=0;
 GtkTreeIter iter;
 //獲取搜索關鍵字
 const gchar* keywords = gtk_entry_get_text(entry_search_id);
 gtk_list_store_clear(liststore2);
 for(i=0;i<size1;i++)
  if(result_mohu(keywords,stu1[i].id)==1)
   {    
    gtk_list_store_append(liststore2,&iter);
    gtk_list_store_set(liststore2,&iter,0,stu1[i].no,-1);
    gtk_list_store_set(liststore2,&iter,1,stu1[i].id,-1);
    gtk_list_store_set(liststore2,&iter,2,stu1[i].name,-1);
    gtk_list_store_set(liststore2,&iter,3,stu1[i].math,-1);
    gtk_list_store_set(liststore2,&iter,4,stu1[i].c_language,-1);
    gtk_list_store_set(liststore2,&iter,5,stu1[i].daolun,-1);
    gtk_list_store_set(liststore2,&iter,6,stu1[i].english,-1);
    gtk_list_store_set(liststore2,&iter,7,stu1[i].pe,-1);
    gtk_list_store_set(liststore2,&iter,8,stu1[i].history,-1);
    gtk_list_store_set(liststore2,&iter,9,stu1[i].daoyuan,-1);
    gtk_list_store_set(liststore2,&iter,10,stu1[i].banzhuren,-1);
    gtk_list_store_set(liststore2,&iter,11,stu1[i].score_classmate,-1);
    gtk_list_store_set(liststore2,&iter,12,stu1[i].sum,-1);
    f=1;
   }
 if(f==0)
  gtk_widget_show(GTK_WIDGET(window_noresult));
}

C語言是什么

C語言是一門面向過程的、抽象化的通用程序設計語言,廣泛應用于底層開發(fā),使用C語言可以以簡易的方式編譯、處理低級存儲器。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。

網(wǎng)站欄目:使用C語言怎么實現(xiàn)一個模糊搜索功能
當前路徑:http://chinadenli.net/article36/ihccsg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供云服務器、外貿網(wǎng)站建設、小程序開發(fā)、網(wǎng)站建設、App設計、微信公眾號

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司