请问下c语言字符串操作的问题?
strncpy
strcpy
如果我操作的source字符中有\0字符的时候,保存到des字符串的就source起始地址截止到\0位置的字符串吗?
这种字符串中存在\0的是不是只能用memcpy复制?
[解决办法]
是的,最好用memmove,别用memcpy
[解决办法]
嗯 对的
[解决办法]
你说的是对的
[解决办法]
[解决办法]
都可以的
[解决办法]
memcpy是把source 指向的对象中的n个字符拷贝到destin所指向的对象中,返回指向结果对象的指针。
memmove也是把source 指向的对象中的n个字符拷贝到destin所指向的对象中,但过程就好象是先把source所指向的对象拷贝到临时数组中,然后在从临时数组拷贝到destin所指的对象中,返回指向结果对象的指针。
但要注意,除memmove之外的字符串操作函数在拷贝同一个字符串中的字符时,其结果是不确定的。也就是说,memmove可以把自己的一部分拷贝给自己的另一部分。其他函数不行,比如memcpy