亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C語言數據結構之模式匹配字符串定位問題

2020-05-23 13:38:42
字體:
來源:轉載
供稿:網友

C語言數據結構之模式匹配字符串定位問題

 主要實現了三種字符串的模式匹配,主要包括字符串子操作的集合,字符串指針回溯,和KMP算法 

頭文件 

#ifndef INDEXHEAD_H_INCLUDED#define INDEXHEAD_H_INCLUDED#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAXLEN 255typedef char Sstring[MAXLEN + 1] ;int StrAssign( Sstring str , char* ps ) ;int StrLength( Sstring str ) ;int StrPrint( Sstring str ) ;int StrCompare( Sstring str1 , Sstring str2 ) ;int StrSub( Sstring sub , Sstring str , int pos , int length ) ;int StrIndex1( Sstring str , Sstring sub , int pos ) ;int StrIndex2( Sstring str , Sstring sub , int pos ) ;int StrIndex3( Sstring str , Sstring sub , int pos ) ;int GetNext( Sstring str , int next[] ) ;#endif // INDEXHEAD_H_INCLUDED 

函數實現

#include "indexhead.h"int StrAssign( Sstring str , char* ps ){  int i = 0 ;  if( strlen( ps ) > MAXLEN )  {    printf( "ERROR!/n" ) ;    exit( 1 ) ;  }  str[i++] = strlen( ps ) ;  while( i <= strlen( ps ) )  {    str[i] = *( ps + i - 1 ) ;    i++ ;  }  return 0 ;}int StrPrint( Sstring str ){  int i = 1 ;  while( i <= str[0] )  {    printf( "%c" , str[i++] ) ;  }  printf( "/n" ) ;  return 0 ;}int StrLength( Sstring str ){  return str[0] ;}int StrCompare( Sstring str1 , Sstring str2 ){  int i = 1 ;  int ret = 0 ;  while( i <= str1[0] && i <= str2[0] )  {    ret = ( unsigned char )str1[i] - ( unsigned char )str2[i] ;    if( ret < 0 )    {      return -1 ;    }    else if( ret > 0 )    {      return 1 ;    }    else    {      i++ ;    }  }  if( i <= str1[0] )  {    return -1 ;  }  else if( i <= str2[0] )  {    return 1 ;  }  else  {    return 0 ;  }}int StrSub( Sstring sub , Sstring str , int pos , int length ){  if( pos < 1 || pos > str[0] || length < 0 || length > str[0] - pos + 1 )  {    printf( "ERROR!/n" ) ;    exit( 1 ) ;  }  int i = 1 ;  sub[0] = length ;  while( i <= length )  {    sub[i] = str[pos + i - 1] ;    i++ ;  }  return 0 ;}int StrIndex1( Sstring str , Sstring sub , int pos ){  pos = 1 ;  Sstring stemp ;  while( pos <= str[0] - sub[0] + 1 )  {    StrSub( stemp , str , pos , sub[0] ) ;    if( !StrCompare( stemp , sub ) )    {      return pos ;    }    pos++ ;  }  return 0 ;}int StrIndex2( Sstring str , Sstring sub , int pos ){  if( pos < 1 || pos > str[0] - sub[0] + 1 )  {    printf( "ERROR!/n" ) ;    exit( 1 ) ;  }  int i = pos ;  int j = 1 ;  while( ( i <= str[0] - sub[0] + 1 ) && ( j <= sub[0] ) )  {    if( str[i] == sub[j] )    {      i++ ;      j++ ;    }    else    {      i = i - j + 2 ;      j = 1 ;    }  }  if( j > sub[0] )  {    return i - sub[0] ;  }  return 0 ;}int GetNext( Sstring str , int next[] ){  int i = 1 ;  next[1] = 0 ;  int j = 0 ;  while( i < str[0] )  {    if( j== 0 || str[i] == str[j] )    {      ++i ;      ++j ;      next[i] = j ;    }    else    {      j = next[j] ;    }  }  return 0 ;}int StrIndex3( Sstring str , Sstring sub , int pos ){  int i = pos ;  int j = 1 ;  int next[ sub[0] ] ;  GetNext( sub , next ) ;  while( i <= str[0] && j <= sub[0] )  {    if( j == 0 || str[i] == sub[j] )    {      ++i ;      ++j ;    }    else    {      j = next[j] ;    }  }  if( j > sub[0] )  {    return i - sub[0] ;  }  return 0 ;}

 測試匹配函數

#include "indexhead.h"int main(){  /*Sstring str ;  Sstring str1 ;  char* p = "hello" ;  StrAssign( str , p ) ;  StrAssign( str1 , "ahello" ) ;  StrPrint( str ) ;  int i = StrLength( str ) ;  printf( "%d/n" , i ) ;  int j = StrCompare( str , str1 ) ;  printf( "%d/n" , j ) ;  StrSub( str , str1 , 3 , 4 ) ;  StrPrint( str ) ;*/  /*Sstring str1 ;//驗證StrIndex1()  Sstring sub ;  StrAssign( str1 , "shfiodshfdghafhs" ) ;  StrAssign( sub , "dgh" ) ;  int i = StrIndex1( str1 , sub , 1 ) ;  printf( "%d/n" , i ) ;*/  /*Sstring str1 ;//驗證StrIndex2()  Sstring sub ;  StrAssign( str1 , "shfiodshfdghafhs" ) ;  StrAssign( sub , "dgh" ) ;  int i = StrIndex2( str1 , sub , 1 ) ;  printf( "%d/n" , i ) ;*/  Sstring str1 ;//驗證StrIndex3()  Sstring sub ;  StrAssign( str1 , "shfiodshfdghafhs" ) ;  StrAssign( sub , "dgh" ) ;  int i = StrIndex3( str1 , sub , 1 ) ;  printf( "%d/n" , i ) ;  return 0;}

如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久av网站| 亚洲欧美在线看| 国内伊人久久久久久网站视频| 日韩欧美国产中文字幕| 欧美日韩在线影院| 国产精品第一视频| 欧美午夜www高清视频| 91在线色戒在线| 日本欧美一级片| 欧美主播福利视频| 91久久久久久久一区二区| 欧美国产日产韩国视频| 精品中文字幕乱| 日本高清久久天堂| 日本三级久久久| 91黑丝高跟在线| 久久国产加勒比精品无码| 美女少妇精品视频| 日韩免费高清在线观看| 日韩精品在线免费观看| 精品国产一区久久久| 欧美精品午夜视频| 欧美精品手机在线| 日韩精品丝袜在线| 最近2019中文字幕大全第二页| 亚洲精品日韩av| 日韩国产欧美区| 92裸体在线视频网站| 国产精品久久久久久久久久免费| 日韩在线视频一区| 亚洲缚视频在线观看| 亚洲视频电影图片偷拍一区| 91成人在线播放| 91免费在线视频网站| 日韩精品免费在线视频观看| 亚洲精品久久久一区二区三区| 91亚洲精品一区| 成人性教育视频在线观看| 亚洲精品成人久久久| 日韩欧亚中文在线| 欧美极品少妇xxxxx| 国产精品国产三级国产aⅴ浪潮| 精品国产电影一区| 欧美激情一区二区三区成人| 亚洲春色另类小说| 日韩精品在线观看网站| 在线性视频日韩欧美| 国产日韩欧美在线视频观看| 欧美日韩国产在线看| 欧美成人免费全部观看天天性色| 亚洲国产一区自拍| 色综合久久中文字幕综合网小说| 精品福利免费观看| 久久青草精品视频免费观看| 国产亚洲精品久久久久动| 精品精品国产国产自在线| 日韩在线精品视频| 国产九九精品视频| 69视频在线免费观看| 中文字幕亚洲综合久久| 亚洲国产天堂久久综合网| 国产日韩欧美电影在线观看| 亚洲xxx视频| 欧美另类xxx| 狠狠躁夜夜躁人人躁婷婷91| 亚洲欧美一区二区精品久久久| 精品久久久久久亚洲国产300| 日韩欧美a级成人黄色| 亚洲精品在线看| 久久97精品久久久久久久不卡| 亚洲精品白浆高清久久久久久| 亚洲精品视频二区| 91久久久久久国产精品| 成人久久一区二区| 亚洲区一区二区| 亚洲黄色有码视频| 亚洲第一页在线| 久久亚洲影音av资源网| 欧美一区二区三区艳史| 这里只有精品视频在线| 久久亚洲综合国产精品99麻豆精品福利| 亚洲精品综合久久中文字幕| 中文字幕亚洲综合久久筱田步美| 亚洲一区www| 高清欧美性猛交xxxx黑人猛交| 精品自拍视频在线观看| 国产精品99久久久久久人| 国产精品中文久久久久久久| 久久久亚洲福利精品午夜| 最近中文字幕日韩精品| 欧美一级淫片videoshd| 一本色道久久综合狠狠躁篇怎么玩| 亚洲色图欧美制服丝袜另类第一页| 亚洲一区二区三区久久| 久久久久久91| 在线电影av不卡网址| 91在线观看免费网站| 欧美电影免费观看高清| 92国产精品久久久久首页| 亚洲成年人在线| 久久久在线观看| 欧美激情精品久久久久久久变态| 欧美成人午夜免费视在线看片| 92福利视频午夜1000合集在线观看| 色狠狠久久aa北条麻妃| 国产精品777| 日韩中文字幕在线视频播放| 欧美激情a在线| 青青草原成人在线视频| 亚洲人成亚洲人成在线观看| zzjj国产精品一区二区| 国内揄拍国内精品少妇国语| 亚洲人成免费电影| 亚洲国产99精品国自产| 精品亚洲一区二区三区| 日韩在线视频播放| 精品性高朝久久久久久久| 色999日韩欧美国产| 国产精品久久久久77777| 亚洲aaa激情| 国产视频福利一区| 成人免费视频网址| 亚洲欧美日韩成人| 日韩成人中文电影| 日韩欧美在线视频日韩欧美在线视频| 精品视频久久久久久久| 26uuu另类亚洲欧美日本老年| 欧美在线亚洲在线| 亚洲美女免费精品视频在线观看| 欧美大片网站在线观看| 久久激情五月丁香伊人| 欧美另类在线观看| 奇米一区二区三区四区久久| 日本午夜精品理论片a级appf发布| 日韩中文字幕在线看| 国语自产精品视频在线看| 亚洲欧美国产一本综合首页| 美日韩丰满少妇在线观看| 久久亚洲成人精品| 在线播放精品一区二区三区| 国产精品爽黄69天堂a| 国产精品香蕉国产| 国产午夜精品理论片a级探花| 国产精品免费久久久久久| 亚洲女同性videos| 欧美高清videos高潮hd| 久久影视电视剧免费网站| 78色国产精品| 国产精品福利久久久| 91精品在线看| 热久久这里只有| 国产亚洲一区精品| 日韩av在线免费| 国产精品777| 日韩av影视综合网| 国产精品久久久久久五月尺| 97在线观看免费高清| 亚洲一区二区免费在线| 亚洲影院色无极综合| 久久精品久久久久久国产 免费| 亚洲精品视频网上网址在线观看| 最近2019中文字幕第三页视频| 国产男人精品视频| 国产精品美女久久久免费|