用数组编写strcpy函数,不用指针

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用数组编写strcpy函数,不用指针相关的知识,希望对你有一定的参考价值。

编写strcpy函数,只能用数组的方法,不能用指针

参考技术A 数组还不就是一个变相指针。 参考技术B void strcpy(char dest[],char src[])

int i;
for (i=0;src[i]!='\0';i++) dest[i]=src[i];
dest[i]='\0';
参考技术C void strcpy(char dest[],const char src[])

int i;
for (i=0;src[i]!='\0';i++) dest[i]=src[i];
dest[i]='\0';
本回答被提问者采纳

c语言中strcpy跟mencpy哪个效率更高?

mencpy为内存拷贝函数,直接指针操作内存块,不考虑存储的内容,效率高,但操作不当容易出错
strcpy为字符串拷贝函数,必须提供源字符串指针和目标字符串指针 速度上比不过mencpy,但更具针对性,拷贝字符串时建议用strcpy不要用mencpy
参考技术A memcpy是内存拷贝,strcpy是字符串拷贝,当然是memcpy数度快。而且memcpy对数据没有限制,而strcpy要求拷贝的数据为字符,否则会出问题。 参考技术B 1:区别
memcpy可以拷贝任何数据类型的对象,指定拷贝的数据长度。
strcpy只能拷贝字符串了,它遇到'\0'就结束拷贝
memcpy()充分利用了机器字长为32位的特性(32位系统,一次内存读/写可操作4字节的数据, 对于64位系统,则一次可操作8字节数据)。先按4字节一组(movsl)拷贝,共复制n/4次;对剩下的零头再逐字节拷贝。如果支持,memcpy()还可以使用了MMX/SSE指令增加一次操作中的字节数,进一步提高效率。
3:健壮性
拷贝的缓冲区如果是非字符串,尽量用memcpy(),其实字符串使用memcpy也是很好的选择。你说的溢出可能是使用strcpy的\0结束问题或者是用memcpy指定的拷贝长度不对造成的

以上是关于用数组编写strcpy函数,不用指针的主要内容,如果未能解决你的问题,请参考以下文章

c语言中如何像用函数strcpy复制字符串一样复制数字,如复制30。

strcpy函数如何使用

c语言中strcpy跟mencpy哪个效率更高?

VS2013 C++中的strcpy用不了,说换成strcpy_s,还是出现错误了。

编一个程序,将两个字符串连接起来,(1)用strcat函数(2)不用strcat函数。

无法在C中使用strcpy从指针数组复制字符串? [复制]