之前的string.h我已经写过字符串的了.今天就谢谢mem的吧. memcpy, 拷贝不重叠的内存块 void *memcpy(void* pvTo, void* pvFrom, size_t size) { assert(pvTo != NULL && pvFrom != NULL); char* pbTo = (char*)pvTo; char* pbFrom = (char*)pvFrom; /* 内存块重叠吗?如果重叠,就使用memmove */ assert(pbTo>=pbFrom+size || pbFrom>=pbTo+size); while(size-->0) *pbTo++ == *pbFrom++; return pvTo; } void *memmove(voi...
by ubuntuer - Linux文档专区 - 2009-09-28 17:06:21 阅读(1031) 回复(0)
当我们读入一个字符串的时候,可能读入的字符串左边有空格之类的无效字符
贴代码
char *trim_left(char *pStr)
{
char *pTemp;
char *p;
char *pEnd;
int nDestLen;
pEnd = pStr + strlen(pStr);
for (p=pStr; p
void *memmove(void *dest, const void *src, size_t n); memmove 函数的效率怎样?如果移动几万甚至几十万字节会不会很慢?有做过这大移动试验的么?
[code] char pDest[]="ChinaUnix"; memmove(pDest+5,pDest,4); printf("pDest=%s",pDest); [/code]为什么输出结果是China,而不是ChinaChin 或UnixChin???
相关函数: bcopy(), [color="#800000"]memccpy() , memcpy() , strcpy(), strncpy() 表头文件: #include 定义函数: void *memmove(void *dest, const void *src, size_t n); 函数说明: [color="#800000"]memmove()与memcpy()一样都是用来拷贝src所指的内存内容前n个字节到dest所指的地址上。不同的是,当src和dest所指的内存区域重叠时,memmove()仍然可以正确的处理,不过执行效率上会比使用memcpy()略慢些。 返回值: 返回指向de...
[code] void *memcpy(void *s, const void *ct, size_t n); void *memmove(void *s, const void *ct, size_t n); [/code] 当发生对象重叠时,memmove能正确执行,下面是我写的memmove [code] void *memmove(void *s, const void *ct, size_t n) { if(s != ct) { if(s > ct) for(int i = n-1; i >= 0; i--) *(s+i) = *(ct+i); else for(int i = 0; i < n; i++) *(s+i) = *(ct+i); } r...
就实现而言的话,memcpy是直接copy,若两个指针所指区域有重叠的话,后果不可知。而memmove是先将s2指向的区域的先copy到一个临时数组,再从临时数组中copy到s1,且临时数组和s1、s2都不重叠,s1、s2可以有重叠部分。 除了这个,还有其他什么区别么??
#include
String.h 中定义了memmove函数 [code] /* string.h Definitions for memory and string functions. Copyright (c) Borland International 1987,1988 All Rights Reserved. */ #if __STDC__ #define _Cdecl #else #define _Cdecl cdecl #endif #ifndef _SIZE_T #define _SIZE_T typedef unsigned size_t; #endif void *_Cdecl memmove (void *dest, const void *src, size_t n); [/code] 请问 这个函数的原形在那里。 [...
我现在正在做银行的中间业务平台,由于我是一个初学者,现在志能是看人家的程序,我现在对于memmove和strcpy这两个函数之间除了有字符串长度的问题以外,还有没有其它的什么不同?在不需要考虑长度的时候,可不可以通用?