您的位置:首页 > 职场人生

字符串笔试面试题

2015-10-19 10:51 295 查看
1、实现strcpy函数

char *strcpy(char *destination, const char *source)
{
assert(destination!=NULL&&source!=NULL);
char* target = destinaton;
while(*destinaton++=*source++);
return target ;
}


2、实现memcpy函数

void *memcopy(void *dest,const void *src,size_t count)
{
char *pDest=(char *)(dest);
const char *pSrc=(const char *)(src);
assert(dest!=NULL&&src!=NULL);

//目的地址和源地址重叠,从源地址的末尾方向开始拷贝
if( pDest>pSrc && pDest<pSrc+count )
{
pDest = pDest + count-1;
pSrc = pSrc + count-1;
while(count--){
*pDest-- = *pSrc--;
}
}
//目的地址和源地址不重叠,从源地址的开始方向拷贝
else
{
while(count--){
*pDest++ = *pSrc++;
}
}

return pDest;
}


3、实现strcmp函数

int strcmp(const char *str1, const char *str2)
{
assert(str1!=0&&str2!=0);
while(*str1 == *str2 &&*str1 != '/0') str1++,str2++;
if(*str1 > *str2)
return 1;
else if(*str1 == *str2)
return 0;
return -1;
}


4、实现strcat函数

char *strcat(char *dest, const char *src)
{
char *tmp = dest;
while (*dest)
dest++;
while ((*dest++ = *src++) != '\0');
return tmp;
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: