C語言程式設計實現grep

2021-06-12 22:14:11 字數 1048 閱讀 5760

簡介

1.               字串比較strncmp函式與strcmp函式不同的地方是引數裡面是否有n。n代表比較的字元的個數。但是strncmp的功能只能從開頭比較,沒有grep的功能;

2.               對於接受的引數,如:argv[1], argv[2]。採用巨集定義來的方法來區分引數之間不同的含義。如:#define key_ptr argv[1]   #definefile_ptr argv[2]  。

3.               在使用fopen函式後,記得在程式末尾使用fclose來關閉檔案流。也可以使用atexit函式來登記退出的處理函式,來關閉檔案流。

示例**

#include #include #include #define max_buffer 200

#define key_ptr argv[1]

#define file_ptr argv[2]

int main(int argc,char *argv)

if(strlen(file_ptr)== 0)

fp= fopen(file_ptr,"r");

if(!fp)

key_sum= strlen(key_ptr);

printf("find:\n");

while(fgets(buffer,sizeof(buffer),fp)!= 0)

}elsekey_ptr = key_ptr;

buf_ptr++;}}

fclose(fp);

printf("progress%d is found %d\n",getpid(),res_sum);

exit(exit_success);

}

執行結果

[root@localhost grep]# ./y_grep incy_grep.c

find:

#include

#include

#include

progress 10902 is found 3

C語言實現泛型程式設計

泛型程式設計讓你編寫完全一般化並可重複使用的演算法,其效率與針對某特定資料型別而設計的演算法相同。在c語言中,可以通過一些手段實現這樣的泛型程式設計。這裡介紹一種方法 通過無型別指標void 看下面的乙個實現交換兩個元素內容的函式swap,以整型int為例 void swap int i1,int ...

socket簡單程式設計 C語言實現

include include include 緩衝區溢位會怎麼樣?intmain 判斷請求載入的版本號的是否符合要求if lobyte wsadata.wversion 2 hibyte wsadata.wversion 2 設定伺服器位址 server add.sin family af ine...

多道程式設計模擬 C語言實現

作業系統實驗 模擬多道程式設計的執行,並且比較順序執行和多道程式執行的所需要的時間。程式的生命週期為 計算 io操作 計算 結束 下面為c語言實現版本,模擬的三個程式單通道模式 多道程式設計模擬 本次為作業系統的實驗,模擬了a,b,c三個程式的多道程式的執行,比較順序執行和多道程式設計 程式執行的順...