国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

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

2020-01-26 16:00:23
字體:
來源:轉載
供稿:網友
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++)!='/0');
   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結尾處的'/0')并添加'/0'。
說明
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!='/0')的簡化形式
  {
    //若使用while(*strDest++),則會出錯,因為循環結束后strDest還會執行一次++,
    //那么strDest將指向'/0'的下一個位置。/所以要在循環體內++;因為要是*strDest最后指
    //向該字符串的結束標志'/0'。
    strDest++;
  }

  while(*strDest++ = *strSrc++)
  {
    NULL;             //該循環條件內可以用++,
  }                   //此處可以加語句*strDest='/0';無必要
  return address;     //為了實現鏈式操作,將目的地址返回
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 毕节市| 安乡县| 上饶县| 泉州市| 茶陵县| 陆河县| 绥江县| 麦盖提县| 科技| 马山县| 成武县| 芜湖市| 桃江县| 西藏| 北辰区| 中卫市| 包头市| 绥滨县| 绥中县| 明星| 抚松县| 南溪县| 东乡| 柘荣县| 河池市| 遵化市| 浦城县| 文水县| 兴国县| 平和县| 蓬莱市| 建始县| 错那县| 巴南区| 厦门市| 襄汾县| 鱼台县| 台中市| 长汀县| 盱眙县| 吉安市|