以下对strcpy的使用有问题吗

来源:百度知道 编辑:UC知道 时间:2024/06/02 23:31:53
(1)void test1()
{
char string[10];
char* str1="0123456789";
strcpy(string, str1);
…..
}

(2) void test2()
{
char string[10], str1[10];
for(i=0; i<10;i++)
{
str1[i] ='a';
}
strcpy(string, str1);
…….
}

(3)void test3(char* str1)
{
char string[10];
if(strlen(str1)<=10)
{
strcpy(string, str1);
}
………
}
strcpy拷贝的时候不是判断是否为\0吗?是否连\0一起拷贝

1.[10]长度不够,至少需要[11]
2.str1没尾巴'\0'
3.同1,或改<=为<

strcpy()判断'\0',连'\0'一起拷贝.

这是我对strcpy()动作的描述:
char* strcpy(char* dst, const char* src) { char* ret=dst;
while (*dst++=*src++);
return ret;
}

strcpy()用的没问题
但char* str1="0123456789";有问题。