首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请教下c语言字符串操作的有关问题

2012-04-11 
请问下c语言字符串操作的问题?strncpystrcpy如果我操作的source字符中有\0字符的时候,保存到des字符串的就

请问下c语言字符串操作的问题?
strncpy
strcpy
如果我操作的source字符中有\0字符的时候,保存到des字符串的就source起始地址截止到\0位置的字符串吗?
这种字符串中存在\0的是不是只能用memcpy复制?

[解决办法]
是的,最好用memmove,别用memcpy
[解决办法]
嗯 对的
[解决办法]
你说的是对的
[解决办法]

探讨
是的,最好用memmove,别用memcpy

[解决办法]
都可以的
[解决办法]
memcpy是把source 指向的对象中的n个字符拷贝到destin所指向的对象中,返回指向结果对象的指针。 
memmove也是把source 指向的对象中的n个字符拷贝到destin所指向的对象中,但过程就好象是先把source所指向的对象拷贝到临时数组中,然后在从临时数组拷贝到destin所指的对象中,返回指向结果对象的指针。 
但要注意,除memmove之外的字符串操作函数在拷贝同一个字符串中的字符时,其结果是不确定的。也就是说,memmove可以把自己的一部分拷贝给自己的另一部分。其他函数不行,比如memcpy

探讨

引用:
是的,最好用memmove,别用memcpy

支持!
避免源和目标内存区重叠。

热点排行