您的位置:首页 > 其它

字符串的常见的操作字串匹配等没有用结构体版

2010-12-12 23:16 260 查看
# 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;

}*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: