串的模式匹配

2021-04-18 08:28:59 字數 1053 閱讀 1086

最近在學

vc++

#include

"stdafx.h"

#include

#include

#define

max_size 1000

//--------------------------

串的模式匹配-----------------------------

//功能:找出str2字串在str1字串中第一次出現的位置(不包括串結束符)

//返回:該位置的序號

//

//環境:visual c++ 2008

//注意:1.此為樸素的模式匹配演算法,演算法在最好情況下,時間複雜度為o(m+n)

//其中m為子串(模式串)長度,n為主串長度

//2.

有一缺點:只能返回第乙個匹配的定位位置

intistrfind(char *str1,const

char *str2) //

查詢

if(flag==1&&j==str2_len)

//兩者都成立,才說明相等

return i;

}

return -1;

} //功能:將line字串的from字串替換為to字串,只替換第乙個

//返回:成功返回1,失敗返回0

//

//環境:visual c++ 2008

//注意:

intireplace(char * line,const

char * from,const

char * to)

//功能:將line字串的全部from字串都替換為to字串

//返回:成功返回替換的個數

//

//環境:visual c++ 2008

//注意:

intireplaceall(char * line,const

char * from,const

char * to) //

替換所有

intmain()

串的模式匹配

以前每次看到字串匹配,一律跳過,今天耐著性子研究了下,依舊是半混沌狀態,先整理放在這,以備後用。這篇文章幫助很大,樸素匹配演算法 kmp演算法,收藏先。1.樸素匹配演算法 int patternmatch common const char pstring,const char ppattern i...

串的模式匹配

子串的定位操作通常稱作串的模式匹配。index s,t,pos t被稱為模式串。直觀演算法 int index string s,string t,int pos else if j lent return i lent else return 0 直觀演算法很簡單,如果字串中當個字元匹配,主串指標...

串的模式匹配

問題描述 對於兩個字串a,b。請設計乙個高效演算法,找到b在a中第一次出現的起始位置。若b未在a中出現,則返回 1。給定兩個字串a和b,及它們的長度lena和lenb,請返回題目所求的答案。測試樣例 acbc 4,bc 2 返回 2 思路 1,該型別題目的一般思路是暴力求解,採用兩層迴圈,我們會從a...