请教C语言高手mystrcpy,mystrcat,mystrcmp的最简洁写法? 10

要求不能用整形变量i。mystrcmp返回负数,0,或正数。mystrcmp返回两个字符的ASCII之差值。... 要求不能用整形变量i。
mystrcmp返回负数,0,或正数。
mystrcmp返回两个字符的ASCII之差值。
展开
 我来答
呼的骨n
推荐于2017-09-16 · TA获得超过132个赞
知道答主
回答量:76
采纳率:0%
帮助的人:27.9万
展开全部
#include <stdio.h>
void mystrcpy(char *d , char *s )
{
while(*s) *(d++) = *(s++);
*d = '\0';
}
void mystrcat(char *d , char *s )
{
while(*d) d++;
while(*s) *(d++) = *(s++);
*d = '\0';
}
int mystrcmp(char *s , char *t )
{
while( *s && *t && *s == *t ) s++,t++;
return *s - *t;
}
int main(int argc, char *argv[])
{
char s1[32] = "sdfsfsdgsd";
char s2[32] = "sdgsdf";
puts(s1);
puts(s2);
printf("cmp:%d\n",mystrcmp(s1,s2));
mystrcpy(s1,s2);
puts(s1);
puts(s2);
printf("cmp:%d\n",mystrcmp(s1,s2));
mystrcat(s1,s2);
puts(s1);
puts(s2);
printf("cmp:%d\n",mystrcmp(s1,s2));
return 0;
}
jayjolinmiri
2012-11-22 · TA获得超过443个赞
知道小有建树答主
回答量:535
采纳率:100%
帮助的人:367万
展开全部
  //大概这样
  #include<stdio.h>
  int mystrcmp(const char *left,const char *right)
  {
  const char *p=left;
  const char *q=right;
  while(*p!='\0'&&*q!='\0'&&*p==*q)
  {
  p++;q++;
  }
  if(*p=='\0'&&*q=='\0')
  return 0;
  return *p-*q;
  }

  char *mystrcat(char *dest,const char *src)
  {
  const char *p=src;
  char *q=dest;
  while(*q!='\0')
  q++;
  while(*p!='\0')
  *q++=*p++;
  *q='\0';
  return dest;
  }

  char *mystrcpy(char *dest,const char *src)
  {
  const char *p=src;
  char *q=dest;
  while(*p!='\0')
  {
  *q++=*p++;
  }
  *q='\0';
  return dest;
  }
  int main()
  {
  char d[10];
  char *s="hello";
  mystrcpy(d,s);
  printf("%s",d);
  return 0;
  }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式