📄 strs.cpp
字号:
#include "d:\cpp\head.h"
#define MAXSTRLEN 255
typedef unsigned char SString[MAXSTRLEN+1];
//------------------------------------------------------
void StrAssign(SString S,char *ch){
//Create a string,it's value equal to char group ch
int i=1;
while(*ch!='\0')S[i++]=*ch++;
S[0]=i-1;
}//StrAssign
int StrLength(SString S){
//The length of string S
return S[0];
}//StrLength
Bool StrEmpty(SString S){
//If the string is empty,return ok,else return false
if(S[0]==0)return TRUE;
else return FALSE;
}//StrEmpty
Status Concat(SString &T,SString S1,SString S2){
int i;
Bool uncat;
if(S1[0]+S2[0]<=MAXSTRLEN){
for(i=1;i<=S1[0];i++)T[i]=S1[i];
for(i=S1[0]+1;i<=S1[0]+S2[0];i++)T[i]=S2[i-S1[0]];
T[0]=S1[0]+S2[0];
uncat=TRUE;
}//if
if(S1[0]+S2[0]>MAXSTRLEN && S1[0]<MAXSTRLEN){
for(i=1;i<=S1[0];i++)T[i]=S1[i];
for(i=S1[0]+1;i<=MAXSTRLEN;i++)T[i]=S2[i-S1[0]];
T[0]=MAXSTRLEN;
uncat=FALSE;
}//if
if(S1[0]==MAXSTRLEN){
for(i=1;i<=S1[0];i++)T[i]=S1[i];
T[0]=MAXSTRLEN;
uncat=FALSE;
}//if
return uncat;
}//Concat
Status SubString(SString &Sub,SString S,int pos,int len){
int i;
if(pos<1||pos>S[0]||len<0||len+pos>S[0]+1) return ERROR;
for(i=pos;i<=pos+len-1;i++) Sub[i-pos+1]=S[i];
Sub[0]=len;
return OK;
}//SubString
int Index(SString S,SString T,int pos){
int i,j,t;
i=pos;
j=1;
while(i<=S[0]&&j<=T[0]){
if(S[i]==T[i]){i++;j++;}
else{i=i-j+2;j=1;}
}//while
if(j>T[0])return i-T[0];
else return 0;
}//Index
//------------------------------------------------------
void main(){
int i;
char *S="asdqase";
char *T=" qas";
S[0]=6;
T[0]=3;
//char *T="ohiw";
printf("----%d\n",Index(S,"qas",2));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -