一些面试基础知识点(2)
2011-01-06 21:47
330 查看
strcp strlcp memcp的实现,又写了一遍,也不知道是第几遍了。目标串的容量,字符串重叠,宽字符,四字节优化这些东西不考虑了。
char* strcp(char* dest, const char* src) { assert(dest != NULL); assert(src != NULL); if (dest == NULL || src == NULL) return NULL; char* save = dest; while((*dest++ = *src++) != '\0') { } return save; } size_t strlcp(char* dest, const char* src, size_t size) { assert(dest != NULL); assert(src != NULL); if (dest == NULL || src == NULL || size == 0) return 0; size_t size_ret = 0; size_t n = size; while((*dest++ = *src++) != '\0') { if (0 == --n) break; size_ret++; } dest--; *dest = '\0'; return size_ret + 1; } void* memcpy(void* dest, void* src, size_t n) { assert(NULL != dest); assert(NULL != src); if (NULL == dest || NULL == src || 0 == n) return NULL; void* ret = dest; char* dest_temp = (char*) dest; char* src_temp = (char*) src; while (n--) { *dest_temp++ = *src_temp++; } return ret; }
相关文章推荐
- C++的一些基础知识,对面试大有裨益
- 一些面试基础知识点(1)
- 一些基础的面试的java知识,普及下。开发和测试都用得到。
- java基础知识整理 一些问题的解答(面试)
- 一些面试可能遇到的基础知识
- H面试的基础知识(1):一些基础知识的总结
- 一些基础知识(面试)
- 操作系统常见面试的一些基础知识整理
- C#基础篇之二 常用的一些基础知识
- PYTHON 一些基础面试题目总结
- j2ee基础知识问题与答案,面试经常问到
- python编程中常用的12种基础知识总结(基础知识,面试可能用得上)
- 接地的一些基础知识
- 关于图像多尺度的一些基础知识
- 关于R的一些基础知识整理
- Linux的一些基本命令--入门级Linux基础知识
- maven的相关知识和一些基础的使用一
- java基础知识强化51:Java程序员面试失败的5大原因
- 基础篇四---一些不清楚知识的梳理与总结