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

来源:互联网 发布:数据库中数据分类指令 编辑:程序博客网 时间:2024/05/01 07:37

# 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;
}*/

原创粉丝点击