C语言中strcpy与memcpy函数实现与区别
2014-09-22 23:08
513 查看
C语言中strcpy与memcpy函数是怎么实现的又有哪些区别呢?下面就与我来简单的介绍下吧,希望大家多给点意见,欢迎评论纠正错误。
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 *。
解析
程序代码如下:
6.2 字符串与数组
字符串一般是用字符数组的方式存储,例如下面的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语言:模拟实现strncpy,尝试比较strncpy与strcpy区别。
- C中strcpy与memcpy函数实现与区别
- strcpy和memcpy函数的实现及其区别
- 不用库函数,自己实现strcpy和memcpy函数;二者的区别
- C语言中strlen、strcpy、strncpy、strcat、strnact、strcmp、memcpy函数的实现
- strcpy与strncpy函数的区别及其C语言实现过程
- memcpy的用法与strcpy的区别及纯c语言实现
- C语言中strlen、strcpy、strncpy、strcat、strnact、strcmp、memcpy函数的实现
- 【面试题】C语言:模拟实现strncpy,尝试比较strncpy与strcpy区别。
- 【C语言】memcpy函数和memmove函数的实现与区别
- C语言中的字符串拷贝函数strcpy和内存拷贝函数memcpy的区别与实现
- C语言中的字符串拷贝函数strcpy和内存拷贝函数memcpy的区别与实现
- strcpy,strncpy和strncpy_s的区别 strncpy函数与memcpy函数
- strcpy函数与memcpy函数(区别及实现)
- C语言实现的线性表 函数形参:指针类型与变量类型的区别 (SqList *L)(SqList L)
- [C语言]strcat strstr strcpy strcmp strlen 的实现与使用
- strcpy,memcpy,sprintf的区别及前两个函数的实现
- strcpy、memcpy、memmove的区别及实现
- C语言中字符串拷贝(strcpy)与内存拷贝(memcpy)的实现
- 杂记之C语言实现复制函数strcpy和strcnpy