資源簡介
最簡潔的KMP算法
代碼片段和文件信息
#include?
#include?
#include?
#define?ERROR?0
#define?TRUE?1;
int?InitData(char?**sourcechar?**targetint?**value)
{
char?ch;
int?i=0;
(*source)=(char*)malloc(sizeof(char)*100);
(*target)=(char*)malloc(sizeof(char)*100);
(*value)=(int*)malloc(sizeof(int)*100);
if(!(*source)||!(*target)||!(*value))
return?ERROR;
printf(“請輸入源字符串,以#結束:\n“);
while((ch=getchar())!=‘#‘)
{
(*source)[i++]=ch;
(*source)[i]=‘\0‘;
}
getchar();?//抵消緩沖
i=0;?//重置
printf(“請輸入要匹配的字符串,以#結束:\n“);
while((ch=getchar())!=‘#‘)
{
(*target)[i++]=ch;
(*target)[i]=‘\0‘;
}
//初始化Value數組
for(i=0;i<100;i++)
{
(*value)[i]=0;
}
return?TRUE;
}
//得出target中的匹配值
int?GetValue(char?*targetint?*value)
{
char?*head*tail;
int?temp;
//ABCDABD
//ABCDAB
int?i=1j=0;
head=(char*)malloc(sizeof(char)*100);
tail=(char*)malloc(sizeof(char)*100);
if(!head||!tail)
return?ERROR;
for(i=1;i {
j=0;
while(target[j]!=‘\0‘)//復制到臨時數組
{
head[j]=target[j];
tail[j]=target[j];
j++;
head[j]=‘\0‘;
tail[j]=‘\0‘;
}
head[i]=‘\0‘;
tail[i+1]=‘\0‘;
評論
共有 條評論
相關資源
- Linux c語言 學生成績管理系統
- 彈跳的小球(test.c)
- 林銳—高質量C編程
- 基于c語言的通訊錄系統
- C語言全套課件與教學資料-哈工大
- c++ 定時關機程序源碼
- 計算機二級C語言真題.docx
- C語言實現 設備信息管理系統
- aes加解密(vc源程序)
- GBT 28169-2011 嵌入式軟件 C語言編碼規范
- C語言標準庫函數大全.chm
- XUnZip Zip解壓縮.rar
- C語言常用代碼(分章節)
- c語言課程設計:客房登記系統源碼
- 程序員面試手冊
- C語言常用算法源代碼
- svpwm程序
- 呂鑫:VS2015之博大精深的0基礎C語言視
- c語言文都講義2020
- 關于LED制作的源代碼合集(38套)
- 04737C++ 程序設計精華.docx
- c語言課件56883
- C++程序設計精講
- C語言推箱子win控制臺
- C語言程序設計50例.docx
- c++ 求兩個數的和
- c++11語言基礎
- 煙花優化算法(c語言版)
- C語言程序設計教材習題參考答案.do
- 數據結構(C語言版)ppt課件,清華,