不用库函数编strcpy strcmp
答案:2 悬赏:60 手机版
解决时间 2021-02-16 12:42
- 提问者网友:黑米和小志
- 2021-02-15 19:35
1、 不使用库函数,编写函数strcpy和strcmp。c语言题。谢谢
最佳答案
- 五星知识达人网友:动情书生
- 2021-02-15 20:17
char* strcpy(char * dst, const char * src)
{
char * cp = dst;
while( *cp++ = *src++ )
;
return( dst );
}
int strcmp ( const char* src, const char* dst )
{
int ret = 0 ;
while( !(ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)
++src, ++dst;
if ( ret < 0 )
ret = -1 ;
else if ( ret > 0 )
ret = 1 ;
return( ret );
}
{
char * cp = dst;
while( *cp++ = *src++ )
;
return( dst );
}
int strcmp ( const char* src, const char* dst )
{
int ret = 0 ;
while( !(ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)
++src, ++dst;
if ( ret < 0 )
ret = -1 ;
else if ( ret > 0 )
ret = 1 ;
return( ret );
}
全部回答
- 1楼网友:第幾種人
- 2021-02-15 21:19
1 strcpy为字符串复制函数。
实现strcpy函数,需要将源字符串各个值依次赋值到目标字符串上,到\0为止。
代码如下:
char *strcpy(char *dst, const char *src)
{
char *p=dst;
while(*src)
*p++=*src++;
*p = '\0';
return dst;
}
2 strcmp为字符串比较函数。
int strcmp(const char *a, const char *b);
需要依次对字符串元素按照ascii码值对比,如果完全相同返回0.
如果不同,对第一个不同的字符比较,如果第一个参数的ascii码值较大,则返回1,否则返回-1.
代码如下:
int strcmp(const char *a, const char *b);
{
while((*a||*b) && *a==*b) a++,b++;
if(*a<*b)return -1;
return *a>*b;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯