# include <stdio.h>
# include <string.h>
# include <stdlib.h>
//求字符串的长度
int StrLength(char *S)
{
int n=0;
for(;*S++;)
n++;
return n;
}
//将字符串A的第pos个位置m个元素复制到B中
int SubString(char *Sub,char *S,int pos,int m)
{
//int a;
int b = 0;
// if(*S) return 0;
for(;m>0 ; pos++,m--)
{
Sub[b] = S[pos];
b++;
}
Sub[b]='/0';//字符串要遇到结束符才结束
return 0;
}
void Print(char *S)
{
StrLength(S);
for(int i=0;i<=StrLength(S);i++)
printf("%c",S[i]);
}
int StrCompare(char *S1,char *S2)
{
for(;*S1==*S2;S1++,S2++)
if(!*S1) return 0;
if(*S1>*S2) return 1;
else if(*S1==*S2) return 0;
else return -1;
}
int Index(char *S,char *T,int pos)
{
int n,m,i;
char *sub=NULL;
if(pos>0)
{
n = StrLength(S);
m = StrLength(T);
i = pos;
sub=(char *)malloc(sizeof(char)*m);
while(i<=n-m+1)
{
SubString(sub,S,i,m);
if(StrCompare(sub,T)!=0)
++i;
else return i+1;
}
}
return 0;
}
void main()
{
int n,k,pos=1,p;
int i = 2,m = 3;
char *S= "abcdefghjll";
char *S1 = "defgh";
char *Sub;
int POS,LEN;
Sub = (char*)malloc(sizeof(char)*10);
printf("字符串的S为:/n");
Print(S);
printf("字符串的S1为:/n");
Print(S1);
n = StrLength(S1);
printf("字符串的长度为S:/n");
printf("%d",n);
printf("/n");
printf("比较字符串S和S1:/n");
k= StrCompare(S1,S);
printf("%d",k);
printf("/n");
printf("求串S的字串:请输入位置和长度/n");
scanf("%d%d",&POS,&LEN);
SubString(Sub,S, 3,3);
Print(Sub);
p = Index(S,S1, pos);
printf("%d/n",p);
printf("/n");
}
/*int Strlength(char s[])
{
int i = 0;
int len = 0;
while(s[i++])//for(;s[i++];)
len++;
return len;
}
int StrLength(char *S)
{
int n = 0;
for(;*s;*S++)
{
if(*s!='/0')
n++
}
return n;
}*/