(1)strcpy()函数的实现
(2)strncpy()函数的实现
(3)strre()函数:实现字符串反转
http://blog.youkuaiyun.com/turingo/article/details/8124432
异或运算,常用于“交换两个数,而不借助于中间变量”。
(4)memccpy():从src复制count字节的字符到dest. 如果src和dest出现重叠, 函数会自动处理,返回dest的值.
- char* mystrcpy(char* dest, const char* source) //const的用法
- {
- assert((dest != NULL) && (source != NULL)); //要包含头文件<assert.h>;若条件表达式为假,则终止程序。
- char* temp = dest;
- while((*dest++ = *source++) != '\0'); //不要丢掉了冒号
- return temp;
- }
(2)strncpy()函数的实现
- char *strncpy(char* strDes, const char *strSrc, int count)
- {
- assert(strDes != NULL &&strSrc != NULL);
- char *address = strDes;
- while (count -- && *strSrc !='\0')
- *strDes ++ = *strSrc ++;
- return address;
- }
(3)strre()函数:实现字符串反转
- char * srtrev(char * str)
- {
- char *p1 = NULL, *p2 = NULL;
- if(!str)
- return str;
- for(p1 = str, p2 = str+strlen(str)-1 ; p1 < p2 ; ++p1, --p2)
- {
- *p1 ^= *p2;
- *p1 ^= *p2;
- *p2 ^= *p1;
- }
- return str;
- }
异或运算,常用于“交换两个数,而不借助于中间变量”。
(4)memccpy():从src复制count字节的字符到dest. 如果src和dest出现重叠, 函数会自动处理,返回dest的值.
- void *memmove(void *dest, const void *src, int count)
- {
- assert(dest != NULL && src != NULL);
- void *address = dest;
- while (count --)
- {
- *(char *) dest = *(char *) src;
- dest = (char *) dest + 1;
- src = (const char *)src + 1;
- }
- return address;
- }
- <p>
- </p>