C++ 字符数组问题

来源:百度知道 编辑:UC知道 时间:2024/05/11 01:34:37
char *strcpy(char * dest,char *src) //拷贝字符串函数
{
for(int i=0;*(src+i)!='\0';i++)
*(dest+i)=*(src+i); //循环拷贝字符
return dest;
}

各位看看这个函数有问题吗?如果没有问题,该函数中的循环结束后没有拷贝'\0'给dest所指向的数组,如果dest所指向的数组空间剩余一部分,需要人工给dest所指向的数组加上'\0'吗?C++中这个地方是怎么表示的?

楼主的函数确实没有拷贝'\0'
下面是The C Programming Language中的写法,绝对是权威.
void strcpy(char *s, char *t)
{
while (*s++ = *t++)
;
}

另:不需考虑dest所指的所谓剩余,C/C++语言本身根本不检查什么剩余不剩余.而且C库中也的确是这样的

char *strcpy(char * dest,char *src) //拷贝字符串函数
{
for(int i=0;*(src+i)!='\0';i++)
*(dest+i)=*(src+i); //循环拷贝字符
*(dest+i)='\0';// 加上这个
return dest;
}

c++它也是'\0'