關於C C 程式裡如何實現模糊查詢

2021-07-10 08:38:45 字數 1224 閱讀 6488

相信學過c/c++的都應該了解如何在陣列裡面去查詢資料,利用for迴圈便能很容易實現查詢的功能,但若陣列裡的資料是字串型別,而你又恰好需要實現的是根據關鍵字進行查詢的話,那麼按部就班對陣列裡的字串進行乙個個字元的對比是很難實現的,這時候就要想其他的辦法了,c裡面有乙個函式便可以從側面實現模糊查詢,它就是strstr()函式,該函式搜尋乙個字串在另乙個字串裡的第一次出現,並返回所搜尋到字串在另乙個字串中的位置,如果沒有搜尋到,則返回0(null)。根據此函式的性質,我們便能利用它來實現模糊查詢,即對字串查詢時,當返回為非空時,即列印所進行搜尋的字串,例如 :

if(strstr(str1,str2)!=null)//str2

為所要要查詢的內容,

str1

為查詢的區域。

下面給大家寫個簡單的學生管理系統,來看看是如何利用strstr函式實現模糊查詢的:

#include

#include

using namespace std;

typedef struct stu

stu;

void exchange(stu &a,stu &b)//對調位置函式

class student

void creat();

void sort();

void add();

void delet();

void name_search();

void num_search();

void fuzzy_search();

void data_search();

void print();

private:

stu s[50]; int count;

};void student::creat() //新建乙個學生資料表

}void student::add()

}cout<<"刪除完成!"<"int low=0;

high=count-1;

cout<<"輸入所要查詢學生的學號:";

cin>>a;

while(low<=high)

if(a==s[mid].num)break;

else

}if(low<=high)

}void student::print()}}

print();

}int main()

}while(x>=1&&x<7);

return 0;}

在C C 程式裡列印呼叫棧資訊

我們知道,gdb的 backtrace 命令可以檢視堆疊資訊。但很多時候,gdbgdb 即使有,也不太可能讓我們直接在上面除錯。如果能讓程式自己輸出呼叫棧,那是最好不過了。本文介紹和呼叫椎棧相關的幾個函式。以上內容源自這幾個函式的 man手冊。先簡單介紹一下這幾個函式的功能 l backtrace ...

C C 除法實現方式及負數取模詳解

一 下面的題目你能全做對嗎?1.7 4 2.7 4 3.7 4 4.7 4 5.7 4 6.7 4 7.7 unsigned 4 答案 1 13 3 1 31073741822 如過你全部答對,你可以無視後面的內容 二 除法的取整分類 除法的取整分為三類 向上取整 向下取整 向零取整。1.向上取整 ...

程式計時方法 c c 實現

在編寫程式中常常要不斷優化演算法,演算法的好壞無非取決於時間和空間的消耗,其中的時間消耗也是我們最關心的問題,一些演算法的時耗我們是可以很輕鬆的大概估計的,比如多個迴圈的疊加。當然也有許多情況是我們難以估計的,比如複雜的遞迴。這時候我們就需要乙個工具來幫我們計算 段的耗時情況。這裡我就舉乙個簡單實用...