關於鏈式運算式

來源:互聯網
上載者:User

五、編寫strcpy函數(10分)

已知strcpy函數的原型是 char *strcpy(char *strDest, const char *strSrc);

其中strDest是目的字串,strSrc是源字串。

(1)不調用C++/C的字串庫函數,請編寫函數

strcpy char *strcpy(char *strDest, const char *strSrc);

{

      assert((strDest!=NULL) && (strSrc !=NULL)); // 2分

      char *address = strDest; // 2分

      while( (*strDest++ = * strSrc++) != ‘/0’ ) // 2分

       NULL ;

       return address ; // 2分

}

(2)strcpy能把strSrc的內容複寫到strDest,為什麼還要char * 類型的傳回值?

 答:為了實現鏈式運算式。 // 2分

例如 int length = strlen( strcpy( strDest, “hello world”) );

 --------------------------------------------------------------------------------------------------------------------------------

看到了這個詞:鏈式運算式,之前沒有聽過,所以去百度了一下,發現有人解釋的還算明白:

-------------------------------------------------------------------------------------------------------------------------------- http://topic.csdn.net/t/20061123/21/5180993.html 1,

就是方便一些,否則就要這樣寫:

char strDest[12];

strcpy( strDest, “hello world”);

int length = strlen(strDest);

什麼鏈式就是一連串寫下來的意思。。。

 --------------------------------------------------------------------------------------------------------------------------------

 其實,說白了,就是如果上面的字串拷貝函數strcopy的傳回值是void,那麼,上面那句:

 int length = strlen( strcpy( strDest, “hello world”) );

 就要像上面那位的回答,寫成好幾句了:

char strDest[12];

 strcpy( strDest, “hello world”);

int length = strlen(strDest);

而這種直接返回char *的手段,就是為了後來函數調用者方便而設計的.不用你這麼麻煩用上述方法去使用了,而直接可以使用拷貝後的dest字串了.這種方便的實現方法,看起來就是鏈子鏈在一起的,所以稱為 鏈式運算式

如此而已.呵呵.

 

 

 

 http://blog.csdn.net/yita316/article/details/4827749

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.