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