Chinaunix首页 | 论坛 | 博客
  • 博客访问: 89662
  • 博文数量: 44
  • 博客积分: 1920
  • 博客等级: 上尉
  • 技术积分: 490
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-06 09:13
文章分类

全部博文(44)

文章存档

2011年(1)

2009年(43)

我的朋友

分类: C/C++

2009-07-12 13:53:23

 

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

char *my_strncpy( char * dest ,const char * src ,int n)
{
char *temp = dest;
while( *src != '\0' && n-1>= 0)
{
  *temp = *src;
  src++; 
  temp++;
  n--;
}
*temp = '\0';
return dest;
}

memcpy函数与strcpy函数的区别?
void *memcpy(void *dest, const void *src, size_t n)
memcpy()用来拷贝src所指的内存内容前n个字节到dest所指的内存地址上。
与strcpy()不同的是,memcpy()会完整的复制n个字节,不会因为遇到字符串结束'\0'而结束。
strcpy函数:char *strcpy(char *s1,const char *s2)
是用于将s2所指向的字符串复制到s1所指向的字符数组中,然后返回s1的地址值。

注:以上函数均包含在string.h头文件中,写程序时不要忘记添加:

#include

阅读(1559) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

ishead2009-11-25 11:40:58

跟系统提供的strncpy有点小区别

chinaunix网友2009-10-22 02:29:17

重新整理下: char *strcpy(char *p, char *pSrc, int n) { char *temp = p; if (!p || !pSrc) { printf("Invalid NULL pointer"); return NULL; } int lengthSrc = 0; while (*pSrc) ++lengthSrc; if (n < lengthSrc) lengthSrc = n; if (abs(p - pSrc) < lengthSrc + 1) { printf("Dangerous that the source will be cut"); return NULL; } while (*temp++ = *pSrc++ && n > 0) --n; *temp = '\0'; return p; }

chinaunix网友2009-10-22 02:11:49

char *strcpy(char *p, char *pSrc, int n) { char *temp = p; if (!p || !pSrc) { printf("Invalid NULL pointer"; return NULL; } int lengthSrc = 0; while (*pSrc) ++lengSrc; if (abs(p - pSrc) < min(lengSrc, n)) { printf("Dangerous that destination and source are close"); return NULL; } while (*temp++ = *pSrc++ && n > 0) --n; *temp = '\0'; return p; }