更多课程 选择中心

C/C++培训
达内IT学院

400-111-8989

C/C++面试中常见库函数实现

  • 发布:C++培训
  • 来源:求职指导
  • 时间:2020-07-16 15:09

大家学习C/C++有的是为了兴趣,但是大多数都是为了找一份好的工作,既然找工作,那么面试就是必不可少的项目,在c/c++面试中经常会被问到函数的实现方面的问题,对于这个问题,达内c++培训班的老师总结了以下几点,希望能够帮助到面试的同学。

1、void *mymemcpy(void *dest, const void* src, size_t );

内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中

void* memcpy(void* dest,void* src,size_t n){

assert(dest != NULL && src != NULL);

if(src < dest && (char*)src + n > dest){

char* pdst = (char*)dest+n-1;

char* psrc = (char*)src+n-1;

while(n--){

*pdst-- = *psrc--;

}

}else{

char* pdest = (char*)dest;

char* psrc = (char*)src;

while(n--){

*pdest++ = *psrc++;

}

}

return dest;

}

2、void *memset(void *s, int c, size_t n);

void* memset(void* src,int c,size_t n){

assert(src != NULL);

char* psrc = (char*)src;

while(n--){

*psrc++ = (char)c;

}

return src;

}

3、char* strcpy(char* dest,const char* src);

char* strcpy(char* dest,const char* src){

assert(dest != NULL && src != NULL);

size_t n = strlen(src);

if(src < dest && src + n > dest){

char* pdst = dest + n;

*pdst-- = '\0';

src = src + n - 1;

while(n--){

*pdst-- = *src--;

}

}else{

char* pdst = dest;

while((*pdst++ = *src++) != 0);

}

return dest;

}

4、char* mystrncpy(char* dest,char* src,size_t n);

char* strncpy(char* dest,const char* src,size_t n){

assert(dest != NULL && src != NULL);

if(src < dest && src + n > dest){

int m = strlen(src) < n ? strlen(src):n;

char* pdst = dest+m;

*pdst-- = '\0';

src = src + m-1;

while(m--){

*pdst-- = *src--;

}

}else{

char* pdst = dest;

size_t i = 0;

while(i++ < n && (*pdst++ = *src++) != '\0');

if(*(pdst-1) != '\0') *pdst = '\0';

}

return dest;

}

5、char* strcat(char* dest,const char* src)

char* strcat(char* dest,const char* src){

assert(dest != NULL && src != NULL);

char* pdst = dest;

while(*pdst != '\0'){

pdst++;

}

while((*pdst++ = *src++) != '\0');

return dest;

}

6、int strcmp(const char* s1,const char* s2)

int strcmp(const char* s1,const char* s2){

assert(s1 != NULL && s2 != NULL);

while(s1 && s2 && *s1 == *s2){

s1++;

s2++;

}

return *s1 - *s2;

}

7、size_t strlen(const char* s)

size_t strlen(const char* src){

assert(src != NULL);

size_t ret = 0;

while(*src++ != '\0'){

ret++;

}

return ret;

}

当你还在担心能否就业时,达内学员提前被企业录取;当你转辗于各大招聘会时,达内学员收到了高薪offer;当你在各大招聘网站投递简历时,达内学员中有人一毕业进入五百强名企。所以选择很重要。达内拥有专业的C++培训课程体系,找C++培训班,选达内就对了。

版权声明:转载文章来自公开网络,版权归作者本人所有,推送文章除非无法确认,我们都会注明作者和来源。如果出处有误或侵犯到原作者权益,请与我们联系删除或授权事宜。

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:入门C/C++,这十个易错点及常用小技巧先学起来~
下一篇:C语言面试:什么是动态链接与静态链接?

C/C++面试中常见库函数实现

入门C/C++,这十个易错点及常用小技巧先学起来~

想要学好c语言应该注意哪些?

  • 扫码领取资料

    回复关键字:视频资料

    免费领取 达内课程视频学习资料

  • 搜索抖音号

    搜索抖音号:1821685962

    免费领取达内课程视频学习资料

Copyright © 2021 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省