
我的小程式
那是大哥
人
展开
-
自動生成鏈表
前幾天因爲測試需要寫了這段自動生成一個鏈表的代碼,貼上來興許以後用得着。 typedef struct card...{ card * previous; char index; card * next;}CARD;CARD * cpHead, * pCurrent, * pTmpCard;char i;//生成4個節點的鏈表,表頭用指針cpHead標記for(i =原创 2007-02-13 01:26:00 · 608 阅读 · 0 评论 -
寬字符讀取函式(Unicode小端排序)
這幾日處理漢字,用Unicode,fgetwc不好用,就自己寫了一個,讀取Unicode小端排序文件的,一次取一個字符(2個字節),返回之。讀到文件末尾返回WEOF。如果最后一次僅有一個字節,則按小端排序處理之,即如文件內容為(十六進制)11 22 33則讀兩次返回值結果為:2211, 0033即33再讀返回WEOF。 //寬字符讀取函式,等同ANSI的f原创 2007-07-31 11:09:00 · 778 阅读 · 0 评论 -
分字段讀取函式
你經常會需要這樣的函式:把字符串:"字段一,字段二,...字段N"(逗號分隔開)中的字段分別讀取到字符串Field_1、Field_2...Field_N中,咋辦?用如下這樣一個函式吧~ //字段分離讀取函式BOOL GetFields(TCHAR *wLine, TCHAR **FieldArray, const unsigned char FieldN)...原创 2007-08-06 13:52:00 · 644 阅读 · 0 评论 -
專題:連連看-戊-核心算法(一)
隔了這麼久終於有時間來研究以前連連看的算法問題了,說來也慚愧。(前文請參看《專題:連連看-甲-乙-概述-建模》及《專題-連連看-丙-丁-算法(一)-矩陣梳理(一) 》) 我們來考慮連連看自動找牌自動找路的問題,先看看下圖。棋盤中卡片1與卡片2可以消元,相鄰的兩個同種元素可以消元。現在就有個問題:給定一個元素甲,我們先從哪個方向“探路”呢?這裡必須有個約定,比如從右方向起原创 2007-10-19 11:50:00 · 1067 阅读 · 0 评论 -
專題:連連看-戊-核心算法(二)
接前文(專題:連連看-戊-核心算法(一)),開始動手寫代碼后就會發現實際上上面一篇的偽碼還是有很多問題的,我們一步步的來。先來個圖。 看圖一中甲元素要消元的情況。甲的出路有兩條,向右或向下,也就是說如果甲是發起方它可以發起向右或向下的探路。再看乙丙,乙有三條出路,丙四個方向都可以走,不過要注意,以上說的都是對發起方來講的,想想,如果是接收方情況還如此嗎?不是。比如對丙原创 2007-10-25 15:55:00 · 700 阅读 · 0 评论 -
專題:連連看-戊-核心算法(三)
經過前面兩篇的討論,理論的東西也差不多了,如果你还不明其中机理,可参看專題:連連看-戊-核心算法(一)及專題:連連看-戊-核心算法(二) 。本篇關注程序實現,基本上就直接放代碼了。先看看定義的頭文件把。LKK.h //連連看(遊戲本身)全域性的頭文件#ifndef __LLK_H__#define __LLK_H__#define __DEBUG__#include stdi原创 2007-10-25 17:01:00 · 561 阅读 · 0 评论 -
漢字簡體轉正體類及測試程式
做了一個將簡體漢字轉化成正體漢字的類ChnTrans,轉化賴字典文件。其中用Open函式打開字典文件(有FILE *版本和CFile版本);用TransChar轉化一個漢字;用Trans轉化一個字符串。 ChnTrans.h文件內容:#pragma once #define UNICODE_FILE_FLAG 0xFEFF #define MAX_UNI原创 2008-09-18 22:11:00 · 477 阅读 · 0 评论 -
寫命令行程序的一點技巧
<br />最近在寫命令行程序,類似windows下的netsh。總結了點技巧。<br /> <br />想做一個不返回的命令行程序,等待用戶輸入,就得用死循環。<br />一般的處理方法如下:<br />while(1)<br />{<br /> ...<br /> cCh = _getch();<br /> _putch(cCh);<br /> ...<br />}<br />一次接受一個字符,自己處理。<br /> <br />每次都有提示符,類似windows的C:/>,就在原创 2011-04-26 13:27:00 · 647 阅读 · 0 评论 -
【專題】路由器軟件的設計與實現(一)(未完待續)
<br />以前在公司做了多年的路由器。。。現在自己沒事兒,也寫一個玩,主要是複習一下。<br /> <br />一個建一個路由器,至少要能實現報文的三層轉發。按照控制、轉發平面分離的思想,模塊大致如下:<br /> <br /> <br />+--------------------------+<br />| |<br />| 路由協議 (RPAs) | +--------+<br />|原创 2011-05-03 01:05:00 · 563 阅读 · 0 评论 -
在VC中使用STL的紅黑樹
最近考慮做個路由表,眾所周知這東西都是用Radix樹或者AVL樹(紅黑樹)造的。俺們是做工程的人,不搞學術,不打算研究這東西。網上找了半天,終於有位兄弟告訴我們怎麼在VC的STL裡使用其自帶的紅黑樹(原文 http://woshao.com/article/7b4c844029c311dfa592000c295b2b8d/),good,來段例子。 #include "stdafx原创 2011-11-05 11:58:41 · 1022 阅读 · 0 评论 -
Win32下的匯編調用C標準庫函數
在Win32環境下匯編,自然難免或必然要用到C標準函數,以下是匯編調用C標準函數的方法。C標準函數包含在MSVCRT.LIB文件中,此文件在VC中可以找到。把它復制到匯編的庫目錄下,然后包含進去。includelib masm32/lib/msvcrt.lib然后還需宣告你將要時用到的函數的原型,用如下語句:extern C printf:dword;或者printf原创 2007-07-07 16:35:00 · 1973 阅读 · 0 评论 -
兩個C語言造的cgi小例子
轉載+老子修改這是一個最簡單的cgi,它根據瀏覽器的不同打印出一句話。#include stdio.h>#include stdlib.h>#include string.h>void main(void)...{ char *http_user_agent; printf("Content-type: text/plain "); http_user_agent =原创 2007-03-30 16:09:00 · 2195 阅读 · 0 评论 -
視窗:網路-WinPcap-“Hello World!”
以前看人家用WinPcap怪方便的,今天有點時間也上網下了一個,打開VC咱們也來個~~咱們不寫“Hello World”了,WinPcap寫不出來,咱們就寫個打印本機可用網卡列表的程序吧,這是最簡單的了。先去http://www.winpcap.org/install/bin/WinPcap_4_0.exe下載安裝WinPcap,再到 http://www.winpcap.org/in原创 2007-03-29 11:25:00 · 1291 阅读 · 0 评论 -
BMP-DUMP-ASCII
將1.bmp文件之數據部分抽取至文本文件bmp.txt中。保存格式:{0xA8, 0x88, 0x0C, 0x14, ..}係字符,使用時注意轉換。/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////原创 2007-01-10 12:01:00 · 711 阅读 · 0 评论 -
LLK-WINDOW-CATCH(文本文件版本)
抓“連連看”窗口之圖,分析后存入文本文件screen.txt中。存入格式:{0xA8, 0x88, 0x7E, 0x00, ...}一個像素3個字節,分別是藍色字節、綠色字節和紅色字節。存儲為文本格式,使用時注意轉換。/////////////////////////////////////////////////////////////////////////////////原创 2007-01-10 22:09:00 · 494 阅读 · 0 评论 -
LLK-WINDOW-CATCH(二進制文件版本)
抓“連連看”窗口之圖,分析后存入二進制文件screen.dat中。存入格式(十六進制編輯器下觀察):A8 88 7E 00 ...一個像素3個字節,分別是藍色字節、綠色字節和紅色字節。存儲為二進制。///////////////////////////////////////////////////////////////////////////////////////////原创 2007-01-10 22:13:00 · 738 阅读 · 0 评论 -
BMP-ASCII-ASSEMBLE
從文本文件screen.txt中一次讀取2個字符並轉換成16進制數,組合上Bmp文件頭寫入llk.bmp中。screen.txt文件格式:A88897C02424...轉換成(16進制數):A8 88 97 C0 24 24藍色字節 綠色字節 紅色字節 藍色字節…… ////////////////////////////////////////////////////原创 2007-01-10 11:47:00 · 673 阅读 · 0 评论 -
專題-連連看-丙-丁-算法(一)-矩陣梳理(一)
丙-算法(一)前文我們得到了棋盤矩陣M,M中同種元素的消元遵循連連看的原則:相鄰或者連綫彎折小於等於兩処。我們可以從矩陣的第一列第一行的那個元素分析起,如果不等于0就考慮消元。對於消元,其過程稍顯複雜。我們需要做以下判別工作:一、元素非0;二、四周非全遮擋(封閉);三、存在非己同類元素;四、非己同類元素四周非全遮擋(封閉);五、連綫彎折処不大于2。五個條件同時滿足及原创 2007-01-15 20:36:00 · 1016 阅读 · 0 评论 -
專題:連連看-甲-乙-概述-建模
連連看是個不錯的遊戲,好玩 規則又不復襍。每每玩QQ連連看時我都不可思議那些高手的敏捷,屢屢敗下陣來,於是有了寫一個自動玩連連看程式的想法。首先归纳一下遊戲規則:“棋盤”可按矩形擺放M x N 張牌,發牌時任意擺放K種牌共X張,其中每种牌都為2的整數倍。這些牌中相同種類的牌(比如花色相同)可以兩輛消去,儅牌消完時遊戲結束(勝利)。消牌規則:1、同種牌;原创 2007-01-16 15:58:00 · 924 阅读 · 0 评论 -
Linux-起步-獲取系統訊息
雖然是起步,但是“Hello Word”我們就不寫了,在Linux下你寫標準的C就能運行了。我們還是從它開始。簡單小程式,打印當前登錄名、計算機名、系統時間、IP地址。 #include stdio.h>#include time.h>#include sys/types.h>#include sys/socket.h>#include unistd.h>#include ne原创 2007-03-14 15:43:00 · 637 阅读 · 0 评论 -
視窗:網路-(完成端口)-最簡示例(客戶端)
可算Windows客戶端最簡單的例子了,看看吧。//連接到服務器端(127.0.0.1)555端口上,發送字符串1234567過去,然後關閉連接,退出程序。#include windows.h>#include stdio.h>#pragma comment (lib, "WS2_32.lib")#define DEFAULT_PORT 555int main(void)...{原创 2007-03-20 16:26:00 · 695 阅读 · 0 评论 -
視窗:網路-最簡示例(服務器端)
Windows服務器端最簡單的例子了,看看吧。 //在555端口上監聽,接受一個傳入的連接,然後退出程序。////////////////////////服務器端///////////////////////#include #include #pragma comment (lib, "WS2_32.lib")#define DEFAULT_PORT 555#define D原创 2007-03-20 23:13:00 · 1031 阅读 · 0 评论 -
【數據結構】IP地址配置存儲探究
單純的IPv4地址是個32位的整數,正好用一個ULONG存放,子網掩碼也是如此,這沒問題。可是存在大小端的情況,很多時候我們還需要使用點分十進制的格式,子網掩碼還有進行長度轉換的需求,如255.255.0.0 -> 16,這樣一來就複雜了。不論如何,我們還是想使用較簡單的辦法,使用一個ULONG,在這裡我們寫作VOS_U32,於是乎我們似乎可以這樣:typedef VOS_U32 IPAD原创 2012-03-17 16:24:24 · 993 阅读 · 0 评论