
请教C语言高手mystrcpy,mystrcat,mystrcmp的最简洁写法? 10
要求不能用整形变量i。mystrcmp返回负数,0,或正数。mystrcmp返回两个字符的ASCII之差值。...
要求不能用整形变量i。
mystrcmp返回负数,0,或正数。
mystrcmp返回两个字符的ASCII之差值。 展开
mystrcmp返回负数,0,或正数。
mystrcmp返回两个字符的ASCII之差值。 展开
2个回答
展开全部
#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;
}
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;
}
展开全部
//大概这样
#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;
}
#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询