strcat原始碼

晚餐吃什麼發表於2018-11-20
#include <iostream>

using namespace std;





/***

 *char *strcat(dst, src) - concatenate (append) one string to another

 *

 *Purpose:

 *       Concatenates src onto the end of dest.  Assumes enough

 *       space in dest.

 *

 *Entry:

 *       char *dst - string to which "src" is to be appended

 *       const char *src - string to be appended to the end of "dst"

 *

 *Exit:

 *       The address of "dst"

 *

 *Exceptions:

 *

 *******************************************************************************/





/////////////////////////////////////////////////////////////////////////////////

/*說明:

  1. __cdecl 是C Declaration的縮寫(declaration,宣告),表示C語言預設的函式呼叫方法:所有引數從右到左依次入棧,這些引數由呼叫者清除,稱為手動清棧。被呼叫函式不會要求呼叫者傳遞多少引數,呼叫者傳遞過多或者過少的引數,甚至完全不同的引數都不會產生編譯階段的錯誤。

  2.  在字串dest之後連線上src

  3.  按照ANSI(American National Standards Institute)標準,不能對void指標進行演算法操作,即不能對void指標進行如p++的操作,所以需要轉換為具體的型別指標來操作,例如char *。(引用網友的結論)

*/



char * __cdecl strcat (

                       char * dst,

                       const char * src

                       )

{

    char * cp = dst;

    

    while( *cp )

        cp++;                   /* find end of dst */

    

    while( *cp++ = *src++ ) ;       /* Copy src to end of dst */



    return( dst );                  /* return dst */

    

}
--------------------- 
https://blog.csdn.net/barry_yan/article/details/8453554 

 

相關文章