c语言 指针 字符串 回文 strcmp,C 简陋版string操作strcpy strcmp strcat strchr strstr

代码如下:

#include

#include

char *strcpy_(char *dest,const char *src);

char *strcat_(char *dest,const char *src);

int strcmp_(const char *dest,const char *src);

int strlen_(const char *src);

char *strchr_(char *s, int c);

char *strstr_(const char *s,const char *c);

int main()

{

char p[]="xxdexxx";

char q[]="de";

printf("p=%s\n",p);

printf("q=%s\n",q);

printf("strlen_(p)=%d\n",strlen_(p));

printf("strcpy_(p,q)=%s\n", strcpy_(p,q));

char p1[]="xxdexxx";

char q1[]="de";

printf("strchr_(p,'d')=%s\n",strchr_(p1,'d'));

char p2[]="xxdexxx";

char q2[]="de";

printf("strstr_(p,q)=%s\n",strstr(p2,q2));

char p3[]="xxdexxx";

char q3[]="de";

printf("strcmp_(p,q)=%d\n",strcmp_(p3,q3));

char p4[]="xxdexxx";

char q4[]="de";

printf("strcat_(p,q)=%s\n",strcat_(p4,q4));

return 0;

}

char *strstr_(const char *s,const char *c)

{

const char *p=NULL;

const char *q=NULL;

while(*s!='\0')

{

p=s;

p=c;

while(*s==*c&&*c!='\0')

{

s++;

c++;

}

if(*c=='\0')

{

return (char*) p;

}

p++;

c=p;

s=p;

}

return NULL;

}

char *strcpy_(char *dest,const char *src)

{

char *p=dest;

while(*src!='\0')

{

*p=*src;

p++;

src++;

}

return dest;

}

int strcmp_(const char *dest,const char *src)

{

int result=0;

const char *p=dest;

AA:if(*p==*src)

{

p++;

src++;

goto AA;

}else

{

result=*p-*src;

return result;

}

return result;

}

char *strcat_(char *dest,const char *src)

{

int len=strlen_(dest)+strlen_(src)+1;

char *p=(char *)malloc(len);

if(p!=NULL)

{

strcpy_(p,dest);

strcpy_(p+strlen_(dest),src);

return p;

}

return NULL;

}

char *strchr_(char *s, int c)

{

char *p=s;

while(*p!='\0')

{

if(*p==c)

{

return p;

}

p++;

}

return NULL;

}

int strlen_(const char *src)

{

int count=0;

const char *p=src;

while(*p++)

{

count++;

}

return count;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值