学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

strcpy函数怎么写

本主题由 死了都要C 于 2008-5-15 16:55 下沉

strcpy函数怎么写

这是一个看似很简单的题目,假如作为公司面试题或者笔试题的时候
你会怎么写这个代码?

TOP

char *strcpy(char *str1, const char *str2)

{

    assert((str1!=NULL) && (str2 !=NULL));

    char *str= str1;                  

    while( (*str1++ = * str2++) != ‘\0’ )   

       NULL ;

    return str ;                          

}
可读性可能不行,呵呵,不知能不能找到工作。

[ 本帖最后由 zjl138 于 2008-5-14 13:55 编辑 ]
Say goodbye to Windows.

TOP

复制内容到剪贴板
代码:
/*strcpy function*/
void str_cpy(char *str_to, char *str_from)
{
    char c;
    while ((c=*(str_from++))!='\0')
    {
        *(str_to++)=c;
    }
        *str_to='\0';
}
可以么???

[ 本帖最后由 mqh21364 于 2008-5-14 14:39 编辑 ]
前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。

TOP

佩服2#的const,assert,NULL;!!!!
前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。

TOP

呵呵,三楼好像还少写了一句。
str_to字符串末尾没有加上'\0'
Say goodbye to Windows.

TOP

哦,谢谢楼上的,我修改一下.
前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。

TOP

二楼的写法和某书一模一样,
不过,效率还能再提高么?

C/C++讨论群:46520219 3996098 21035626 57909089
免费的C/C++算法学习论坛:http://yzfy.org

TOP

燕子你是说把断言去掉吗?或者其它什么好方法啊?
学习需要安静。。海盗要重新来过。。

TOP

去掉断言不应该算作提高效率吧??
前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。

TOP

假如去掉断言,那你这次面试注定会失败

C/C++讨论群:46520219 3996098 21035626 57909089
免费的C/C++算法学习论坛:http://yzfy.org

TOP

发新话题