Chinaunix首页 | 论坛 | 博客
  • 博客访问: 291702
  • 博文数量: 134
  • 博客积分: 667
  • 博客等级: 上士
  • 技术积分: 770
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-08 15:19
文章分类

全部博文(134)

文章存档

2012年(134)

分类:

2012-04-08 15:49:22




//============================================================================
// Name : HelloWorld.cpp
// Author : chio
// Version : ver.1.0.0
// Copyright : Suprasoft Inc,.
// Description : TODO
//============================================================================

#include <iostream>
#include <string.h>
#include <cassert>
using namespace std;

char * strcpy(char *dst, const char *src) {
assert(src != NULL && dst != NULL);
char *ret = dst;
while((*dst++ = *src++) != '\0') ;
return ret;
}

void * memcpy(void *dst, const void *src, size_t len) {
assert(src != NULL && dst != NULL);
void *ret = dst;
int i = len;
//防重叠
if(src < dst) {
char *csrc = (char *)src;
char *cdst = (char *)dst;
while(i--) {
*cdst++ = *csrc++;
}
} else {
char *csrc = (char *)src + len - 1;
char *cdst = (char *)dst + len - 1;
while(i--) {
*cdst-- = *csrc--;
}
}

return ret;
}

int main() {
char *src = "hello world";
char *dst = new char[0];
cout << strcpy(dst, src) << endl;
void *memsrc = (void *)"hello";
char memdst[6];
memdst[5] = '\0';
cout << (char *)memcpy(memdst, memsrc, 5) << endl;

return 0;
}

阅读(409) | 评论(0) | 转发(0) |
0

上一篇:epoll的优点

下一篇:linux线程属性

给主人留下些什么吧!~~