C語言中字串常用函數strcat與strcpy的用法介紹

來源:互聯網
上載者:User

以下是對C語言中字串常用函數strcat與strcpy的使用方法進行了詳細的分析介紹,需要的朋友可以參考下 

strcpy原型聲明:extern char *strcpy(char* dest, const char *src);
標頭檔:#
include <string.h>
功能:把從src地址開始且含有NULL結束符的字串複製到以dest開始的地址空間
說明:src和dest所指記憶體地區不可以重疊且dest必須有足夠的空間來容納src的字串。
返回指向dest的指標。
函數實現:

複製代碼 代碼如下:
/**********************
* C語言標準庫函數strcpy的一種典型的工業級的最簡實現
* 傳回值:目標串的地址。
* 對於出現異常的情況ANSI-C99標準並未定義,故由實現者決定傳回值,通常為NULL。
* 參數:
* strDestination 目標串
* strSource 源串
***********************/

char *strcpy(char *strDestination,const char *strSource)
{
  assert(strDestination!=NULL && strSource!=NULL);
  char *strD=strDestination;
  while ((*strD++=*strSource++)!='');
  return strDestination;
}

/*
GNU-C中的實現(節選):
*/
char* strcpy(char *d, const char *s)
{
  char *r=d;
  while((*d++=*s++));
  return r;
}
/* while((*d++=*s++)); 的解釋:兩層括弧是為了取賦值運算式的值,
       而賦值運算式的值為左運算元,所以在複製NULL後,迴圈停止 */


strcat原型
extern char *strcat(char *dest,char *src);
用法
#include <string.h>
在C++中,則存在於<cstring>標頭檔中。
功能
把src所指字串添加到dest結尾處(覆蓋dest結尾處的'')並添加''。
說明
src和dest所指記憶體地區不可以重疊且dest必須有足夠的空間來容納src的字串。
返回指向dest的指標。
函數實現:

複製代碼 代碼如下:


//將源字串加const,表明其為輸入參數
char *strcat(char *strDest, const char *strSrc)
{
  // 後文return address,故不能放在assert斷言之後聲明address
  char *address = strDest;
  assert((strDest != NULL) && (strSrc != NULL)); //對源地址和目的地址加非0斷言
  while(*strDest)             //是while(*strDest!='')的簡化形式
  {
    //若使用while(*strDest++),則會出錯,因為迴圈結束後strDest還會執行一次++,
    //那麼strDest將指向''的下一個位置。/所以要在迴圈體內++;因為要是*strDest最後指
    //向該字串的結束標誌''。
    strDest++;
  }

  while(*strDest++ = *strSrc++)
  {
    NULL;             //該迴圈條件內可以用++,
  }                   //此處可以加語句*strDest='';無必要
  return address;     //為了實現鏈式操作,將目的地址返回
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.