C 언어 데이터 구조 에서 포 지 셔 닝 함수 Index 의 사용 방법
구현 코드:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define MAXSIZE 40 //
typedef int Status;
typedef char SString[MAXSIZE+1];
// SString[maxsize+1] , SubString ,
// ,SString[0] , * &,
/******************************* ****************************************/
Status StrAssign(SString T,char *chars);
// chars T
int StrLength(SString S);
// : S ,
int StrCompare(SString S,SString T);
// : S>T, >0; S = T, =0; S<T, <0
Status SubString(SString Sub, SString T,int pos,int len);
// Sub T pos len
int Index(SString S,SString T,int pos);
// S T , pos ; 0
/******************************* ****************************************/
Status StrAssign(SString T,char *chars)
{
int i,ct;
for(i = 0;i <= MAXSIZE; i++)
T[i] = '\0'; //
T[0] = strlen(chars);
for(ct = 1;*chars != '\0';ct++,chars++){
T[ct] = *chars;
}
return OK;
}
int StrLength(SString S)
{
return S[0];
}
int StrCompare(SString S,SString T)
{
int cnt = 1;
while(cnt <= S[0] && cnt <= T[0]){ //
if(S[cnt] == T[cnt]){ //
cnt++;
}
else{ //
return S[cnt] - T[cnt];
}
}
return S[0]-T[0];
}
Status SubString(SString Sub, SString T,int pos,int len)
{
if(pos<1 || pos>T[0] || len<0 || len>T[0]-pos+1)
return ERROR;
int ct,cnt;
for(ct = 1,cnt = pos;cnt <= len+pos;ct++,cnt++){
Sub[ct]=T[cnt];
}
Sub[0] = len+1;
return OK;
}
int Index(SString S,SString T,int pos)
{
SString Sub;
int i = pos;
if(pos > 0){
int n = StrLength(S),m = StrLength(T);
while( i<= n-m+1){
SubString(Sub,S,i,m-1);
if(StrCompare(Sub,T)==0)
return i;
else
i++;
}
}//if
printf("
");
return 0; //S T
}//Index
/******************************* **************************************/
int main()
{
char *chars1 = "abcdefhg";
char *chars2 = "defhg";
SString S,T;
StrAssign(S,chars1);
StrAssign(T,chars2);
int ANSWER = Index(S,T,1);
printf(" T S = %d
",ANSWER);
return 0;
}
구현 효과:궁금 한 점 이 있 으 시 면 메 시 지 를 남기 거나 본 사이트 의 커 뮤 니 티 에 가서 토론 을 교류 하 세 요.읽 어 주 셔 서 감사합니다. 도움 이 되 셨 으 면 좋 겠 습 니 다.본 사이트 에 대한 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[SQL] Mysql Index 사용법대부분의 Mysql 인덱스 (PRIMARY KEY, UNIQUE, INDEX, and FULLTEXT)는 B-tree안에 저장된다. 예외적으로 spatial 데이터 타입은 R-tree를 사용 리프노드는 실제 DB의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.