zoukankan      html  css  js  c++  java
  • strcpy的返回值有什么用?

    在面试中常会遇到写 strcpy,以及相关的问题,比如说返回值的作用等。
    //z 2012-07-06 10:23:32 AM IS2120@CSDN.T1445120086
    以下为微软clib中的strcpy的写法。
    /***
    *char *strcpy(dst, src) - copy one string over another
    *
    *Purpose:
    *       Copies the string src into the spot specified by
    *       dest; assumes enough room.
    *
    *Entry:
    *       char * dst - string over which "src" is to be copied
    *       const char * src - string to be copied over "dst"
    *
    *Exit:
    *       The address of "dst"
    *
    *Exceptions:
    *******************************************************************************/
    (T1445120086)
    char * __cdecl strcpy(char * dst, const char * src)
    {
            char * cp = dst;

            while( *cp++ = *src++ )
                    ;               /* Copy src over dst */

            return( dst );
    }

    为什么返回dst?
    【建议6-2-1】有时候函数原本不需要返回值,但为了增加灵活性如支持链式表达,可以附加返回值。
    例如字符串拷贝函数strcpy 的原型:
    char *strcpy(char *strDest,const char *strSrc);
    strcpy 函数将strSrc 拷贝至输出参数strDest 中,同时函数的返回值又是strDest。
    这样做并非多此一举,可以获得如下灵活性:
    char str[20];
    int length = strlen( strcpy(str, “Hello World”) );

    strncpy的一种实现
    man里的原文:
    A simple implementation of strncpy() might be:

               char*
               strncpy(char *dest, const char *src, size_t n){
                   size_t i;

                   for (i = 0 ; i < n && src[i] != '/0' ; i++)
                       dest[i] = src[i];
                   for ( ; i < n ; i++)
                       dest[i] = '/0';

                   return dest;
               }
    //z 2012-07-06 10:23:32 AM IS2120@CSDN.T1445120086

  • 相关阅读:
    HDU 4571 Travel in time(最短路径+DP)(2013 ACM-ICPC长沙赛区全国邀请赛)
    第十四届华中科技大学程序设计竞赛 C Professional Manager【并查集删除/虚点】
    第十四届华中科技大学程序设计竞赛 B Beautiful Trees Cutting【组合数学/费马小定理求逆元/快速幂】
    二分最化最值问题(二)
    二分最化最值问题(一)
    CONTINUE...?【构造/分析】
    Doki Doki Literature Club
    King of Karaoke
    Peak
    ZOJ18th省赛 Lucky 7
  • 原文地址:https://www.cnblogs.com/IS2120/p/6746038.html
Copyright © 2011-2022 走看看