C中strcpy与memcpy函数实现与区别
2017-09-14 11:22
295 查看
6.2 字符串与数组
字符串一般是用字符数组的方式存储,例如下面的str定义:
这里str是一个字符数组,它存放了一个字符串"123456",由于字符串还有一个结束符"\0",所以此数组的长度为7而不是6。
6.2.1 strcpy函数与memcpy函数
strcpy和memcpy都是标准C库函数,它们有下面的特点。
strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。
memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。
面试例题5:编程实现strcpy函数。
考点:字符串复制的实现。
出现频率:★★★★
已知strcpy函数的原型是:
要求如下。
(1)不调用库函数,实现strcpy函数;
(2)解释为什么要返回char *。
解析
程序代码如下:
字符串一般是用字符数组的方式存储,例如下面的str定义:
char str[] = "123456"; |
6.2.1 strcpy函数与memcpy函数
strcpy和memcpy都是标准C库函数,它们有下面的特点。
strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。
memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。
面试例题5:编程实现strcpy函数。
考点:字符串复制的实现。
出现频率:★★★★
已知strcpy函数的原型是:
char * strcpy(char * strDest,const char * strSrc); |
(1)不调用库函数,实现strcpy函数;
(2)解释为什么要返回char *。
解析
程序代码如下:
1 #include 2 3 char * strcpy(char * strDest, const char * strSrc) // 实现 strSrc到strDest的复制 4 { 5 if ((strDest == NULL) || (strSrc == NULL)) //判 断参数strDest和strSrc的有效性 6 { 7 return NULL; 8 } 9 char *strDestCopy = strDest; //保存目标字符串的首地址 10 while ((*strDest++ = *strSrc++)!='\0'); //把 strSrc字符串的内容复制到strDest下 11 12 return strDestCopy; 13 } 14 15 int getStrLen(const char *strSrc) //实现获取strSrc字符串的长度 16 { 17 int len = 0; //保存长度 18 while(*strSrc++ != '\0') //循环直到遇见结束符'\0'为止 19 { 20 len++; 21 } 22 23 return len; 24 }; 25 26 int main() 27 { 28 char strSrc[] = "Hello World!"; //要被复制的源字符串 29 char strDest[20]; //要复制到的目的字符数组 30 int len = 0; //保存目 的字符数组中字符串的长度 31 32 len = getStrLen(strcpy(strDest, strSrc)); //链 式表达式,先复制后计算长度 33 printf("strDest: %s\n", strDest); 34 printf("Length of strDest: %d\n", len); 35 36 return 0; 37 |
相关文章推荐
- C语言中strcpy与memcpy函数实现与区别
- 不用库函数,自己实现strcpy和memcpy函数;二者的区别
- strcpy和memcpy函数的实现及其区别
- strcpy函数与memcpy函数(区别及实现 )
- strcpy函数与memcpy函数(区别及实现)
- strcpy与strncpy函数的区别及其C语言实现过程
- strcpy、memcpy函数的实现
- strcpy、memcpy和memmove的区别和实现
- strcpy和memcpy函数的实现
- strcpy和memcpy的区别以及实现
- strcpy,strncpy,strcat,strcnat,strcmp,strncmp,的区别与实现
- C语言中的字符串拷贝函数strcpy和内存拷贝函数memcpy的区别与实现
- memmove和memcpy函数的区别及实现
- strcpy和memcpy的区别 与内部实现
- C语言中strlen、strcpy、strncpy、strcat、strnact、strcmp、memcpy函数的实现
- memset ,memcpy ,memmove,strcpy 的根本区别 与实现
- strcpy与memcpy的实现与区别
- 自我实现strcpy,memcpy函数
- 常见内存拷贝函数:memcpy()、memmove()、strcpy()的实现及区别
- memset ,memcpy ,memmove,strcpy 的根本区别 与实现