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

首頁 > 編程 > C++ > 正文

C++ 中strcpy標準寫法實例詳解

2020-01-26 14:05:36
字體:
來源:轉載
供稿:網友

strcpy標準寫法

實例代碼:

// CppReference.cpp : 定義控制臺應用程序的入口點。//#include "stdafx.h"using namespace std;/* * 說明:字符串拷貝版本1 * 參數:dest目標地址,src源地址 * 返回:返回拷貝好的地址;如果出錯或者有重疊,無定義 * 異常:可能出現字符串溢出,及dest所占空間不如src所占空間大。 */char *strcpy_v1(char *dest , const char *src){  //調試時,使用斷言,入口檢測  assert( (dest!=NULL) && (src!=NULL) );    //注意這里的內存指向參數dest所在的內存,不是棧內存,因而可以在函數中返回  char *to = dest;    //主要操作在while條件中完成  while( (*dest++ = *src++)!='/0')  {    NULL;    }    //返回拷貝字符串首地址,方便連綴,比如strlen(strcpy(dest,"hello"))  return to;}/* * 說明:字符串拷貝版本2 * 參數:dest目標地址,src源地址 * 返回:返回拷貝好的地址;如果出錯,無定義 * 異常:可能出現字符串溢出,及dest所占空間不如src所占空間大。 */char *strcpy_v2(char *dest , const char *src){  char *d = dest;  char c;    while((c=*src++) != '/0')  {    *(dest++)=c;  }    *dest='/0';    return d;}/* * 說明:字符串拷貝版本2(你能找出錯誤的原因嗎) * 參數:dest目標地址,src源地址 * 返回:返回拷貝好的地址;如果出錯,無定義 * 異常:可能出現字符串溢出,及dest所占空間不如src所占空間大。 */char *strcpy_v2_error(char *dest , const char *src){  char *d = dest;  char c;    while((c=*src++) != '/0')  {    *(d++)=c;  }    *d='/0';    return d;}/* * 說明:字符串拷貝版本3 * 參數:dest目標地址,src源地址 * 返回:返回拷貝好的地址;如果出錯,無定義 * 異常:可能出現字符串溢出,及dest所占空間不如src所占空間大。 */char *strcpy_v3(char *dest , const char *src){  char *d = dest;  char c;    while(*src)    *dest++ = *src++;      *dest='/0';    return d;}/* * 說明:字符串拷貝版本4 * 參數:dest目標地址,src源地址 * 返回:返回拷貝好的地址;如果出錯,無定義 * 異常:可能出現字符串溢出,及dest所占空間不如src所占空間大。 */char *strcpy_v4(char *dest , const char *src){  char *d = dest;  char c;    while( (*dest = *src)!='/0')  {    src++;    dest++;   }      *dest='/0';    return d;}/* * 說明:字符串拷貝版本5 * 參數:dest目標地址,src源地址 * 返回:返回拷貝好的地址;如果出錯,無定義 * 異常:可能出現字符串溢出,及dest所占空間不如src所占空間大。restrict關鍵字限定字符串不能重疊。 */char *strcpy_v5(char* _restrict dest , const char* _restrict src){  char *d = dest;  char c;    while( (*dest = *src)!='/0')  {    src++;    dest++;   }      *dest='/0';    return d;}/* * 說明:字符串拷貝版本6 * 參數:dest目標地址,src源地址 * 返回:返回拷貝好的地址;如果出錯,無定義 * 異常:可能出現字符串溢出,及dest所占空間不如src所占空間大。restrict關鍵字限定字符串不能重疊。 */char *strcpy_v6(char* _restrict dest , const char* _restrict src){  char *d = dest;  char c;    while(*dest++=*src++);   return d;}int _tmain(int argc, _TCHAR* argv[]){  char buf[512];    char *buf2 = (char *)calloc(50,sizeof(char));    char *buf3 = (char *)malloc(50*sizeof(char));    char *buf5 = (char *)malloc(50*sizeof(char));    char *buf6 = (char *)malloc(50*sizeof(char));    printf("using strcpy_v1,the string 'Hello,World'/'s length is : %d/n",strlen(strcpy_v1(buf,"Hello,World")));    printf("using strcpy_v2,the string 'This is the best age'/'s length is : %d/n",strlen(strcpy_v2(buf2,"This is the best age")));    printf("using strcpy_v2,the string 'This is the best age'/'s length is : %d/n",strlen(strcpy_v2_error(buf2,"This is the best age")));    printf("using strcpy_v3,the string 'This is the best age'/'s length is : %d/n",strlen(strcpy_v3(buf3,"This is the best age")));    printf("using strcpy_v5,the string 'This is the best age'/'s length is : %d/n",strlen(strcpy_v5(buf5,"This is the best age")));    printf("using strcpy_v6,the string 'This is the best age'/'s length is : %d/n",strlen(strcpy_v6(buf6,"This is the best age")));   system("pause");    return 0;}

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安仁县| 北流市| 梧州市| 武穴市| 克山县| 灵寿县| 朝阳县| 中西区| 隆化县| 西畴县| 烟台市| 横山县| 庆元县| 宁阳县| 临洮县| 大宁县| 临猗县| 蚌埠市| 宜阳县| 汶川县| 云南省| 洛川县| 永善县| 铜鼓县| 文水县| 陆良县| 无锡市| 新竹县| 镇远县| 宜春市| 芒康县| 海宁市| 武平县| 德惠市| 新乡县| 昌都县| 龙口市| 巴林右旗| 法库县| 吉水县| 沙湾县|