青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

liyuxia713

蹣跚前行者

常用鏈接

統(tǒng)計

Algorithms

C++

最新評論

深入理解strcpy,strncpy

~對初學(xué)者屬于深入理解吧,高手請勿在此浪費寶貴時間~

看到這樣一個改錯題:
char p[5]; 
char* s="12345"
strcpy(p,s);
   cout << p << endl;
錯誤之處是很顯然的,作為字符串字面值的"12345"會在結(jié)尾處自動加上空字符null,從而長度是6,上面的strcpy是會越界的,從而是個越界錯誤。
問題是我以為這樣的程序編譯的時候會出錯呢!但是我在vc上運行時是可以輸出正確結(jié)果的,這讓我很是納悶!后來找到了strcpy的源代碼才知原因,strcpy函數(shù)是不進(jìn)行越界處理的. 又因為strcpy連null一起復(fù)制,從而p能輸出正確的結(jié)果"12345"
/*The strcpy function copies strSource, including the terminating null character, to the location specified by strDestination. No overflow checking is performed when strings are copied or appended. The behavior of strcpy is undefined if the source and destination strings overlap.*/
char * __cdecl strcpy(char * dst, const char * src) 

char * cp = dst; 

while*cp++ = *src++ ) 
/* Copy src over dst */ 

return( dst ); 
}
 
貌似strcpy雖然不進(jìn)行越界處理,仍然是個挺好的函數(shù)呢,但是注意了,下面的代碼就能暴露出strcpy 的缺點了.
char p[5];
char *= "12345678";
strcpy(p,s);
cout 
<< p <<endl; //輸出12345678,而不是我們所設(shè)想的12345
為了不因不知s的長度而犯下錯誤,推薦使用strncpy。但是是不是用了strncpy就萬無一失了呢?看下面的代碼:
char p[5];
char* s = "12345";
strncpy(p,s,
5);
cout 
<< p <<endl; //12345*&^(后面表示亂碼)
不是都限制個數(shù)了么?為什么后面又有亂碼?
問題來自在上述情形strncpy是不會復(fù)制字符串s后面的null的,不是以null結(jié)束的p不會輸出正確結(jié)果的。
仍然給出strncpy的源代碼:
/*The strncpy function copies the initial count characters of strSource to strDest and returns strDest. If count is less than or equal to the length of strSource, a null character is not appended automatically to the copied string. If count is greater than the length of strSource, the destination string is padded with null characters up to length count. The behavior of strncpy is undefined if the source and destination strings overlap.*/
char * __cdecl strncpy ( char * dest, const char * source, size_t count ) 

char *start = dest; 

while (count && (*dest++ = *source++)) /* copy string */ 
count
--

if (count) /* pad out with zeroes */ 
while (--count) 
*dest++ = '\0'

return(start); 
}
 
那strncpy這么不穩(wěn)定,為何用它?strncpy經(jīng)常用于修改一個長字符串中間的一部分(看出不復(fù)制null的原因了吧?。?,如果實在要用到上述的代碼上,就在代碼最后加上p[5] = '\0'; 吧!

posted on 2009-04-26 20:59 幸運草 閱讀(3371) 評論(1)  編輯 收藏 引用 所屬分類: C++

評論

# re: 深入理解strcpy,strncpy 2009-12-12 14:04 小螞蟻

不是strncpy不穩(wěn)定
數(shù)組長度不夠,讓strncpy越界再加個\0 ?
  回復(fù)  更多評論   

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美成人黑人xx视频免费观看| 国产欧美精品在线播放| 亚洲成人中文| 欧美凹凸一区二区三区视频| 久久一区二区视频| 欧美成人免费视频| 亚洲欧洲日本一区二区三区| 亚洲精品免费在线观看| 一区二区三区产品免费精品久久75| 日韩视频免费| 欧美亚洲色图校园春色| 久久久久久电影| 欧美电影资源| 国产精品尤物福利片在线观看| 国产三区精品| 亚洲精品美女91| 性欧美精品高清| 欧美激情一区二区三区成人| a4yy欧美一区二区三区| 欧美中文字幕视频在线观看| 嫩草影视亚洲| 国产麻豆日韩欧美久久| 亚洲黄色一区二区三区| 亚洲欧美成人精品| 欧美成人一品| 亚洲伊人久久综合| 欧美黄网免费在线观看| 国产日韩精品久久| 99视频一区二区三区| 久久久人成影片一区二区三区观看 | 亚洲视频成人| 久久久久久高潮国产精品视| 欧美日韩精品免费 | 这里只有精品丝袜| 美女久久一区| 午夜久久电影网| 欧美日韩在线免费观看| 亚洲国产mv| 老司机67194精品线观看| 一本色道久久综合亚洲精品高清| 久久久最新网址| 国产精品香蕉在线观看| 日韩天堂在线视频| 亚洲日本成人网| 免费不卡中文字幕视频| 国产一区二区三区高清在线观看| 国产精品99久久久久久久久| 欧美激情亚洲| 久久久亚洲人| 一区二区在线视频| 欧美性大战xxxxx久久久| 久久精品女人| 国产手机视频精品| 亚洲欧美国产一区二区三区| 亚洲国产婷婷综合在线精品| 久久久免费观看视频| 国产欧美日韩在线视频| 亚洲主播在线| 亚洲一区黄色| 国产欧美日韩综合一区在线观看 | 一本色道久久88亚洲综合88| 欧美福利视频在线| 91久久精品日日躁夜夜躁欧美| 久久人人爽人人爽| 久久精品国产69国产精品亚洲 | 亚洲先锋成人| 亚洲午夜激情| 国产亚洲精品高潮| 欧美va天堂| 欧美日韩www| 亚洲欧美日本另类| 亚洲欧美在线播放| 在线观看国产精品淫| 欧美肥婆bbw| 欧美日韩另类一区| 香蕉久久一区二区不卡无毒影院| 亚洲嫩草精品久久| 精品成人国产在线观看男人呻吟| 欧美福利一区二区三区| 欧美大尺度在线观看| 一区二区三区久久| 性刺激综合网| 亚洲美女性视频| 亚洲永久视频| 亚洲电影网站| 99精品视频免费观看| 国产欧美va欧美不卡在线| 免费欧美高清视频| 欧美日韩一区二区三区在线看| 亚洲欧美国产精品va在线观看 | 久久久精品国产99久久精品芒果| 最新中文字幕一区二区三区| 亚洲精品女av网站| 国产精品v日韩精品| 久久青草久久| 欧美三级电影一区| 猛干欧美女孩| 国产精品裸体一区二区三区| 欧美va亚洲va国产综合| 欧美特黄a级高清免费大片a级| 久久久国产精品一区二区中文| 欧美大香线蕉线伊人久久国产精品| 亚洲专区在线| 欧美激情a∨在线视频播放| 亚洲欧美激情在线视频| 一二三四社区欧美黄| 亚洲天天影视| 亚洲精华国产欧美| 午夜免费日韩视频| 一区二区三区色| 老司机免费视频一区二区| 亚洲一区中文字幕在线观看| 久久婷婷蜜乳一本欲蜜臀| 欧美一进一出视频| 欧美日韩一区成人| 亚洲国产精品久久精品怡红院| 国产日韩欧美成人| 国产精品99久久不卡二区 | 国产日韩欧美夫妻视频在线观看| 欧美激情久久久久| 国产日韩av一区二区| 在线综合亚洲| 一区二区免费在线观看| 欧美国产一区在线| 欧美激情视频一区二区三区不卡| 韩国福利一区| 久久精品99国产精品| 久久大香伊蕉在人线观看热2| 欧美亚日韩国产aⅴ精品中极品| 欧美大片18| 亚洲区欧美区| 欧美a级片网| 亚洲第一在线| 亚洲精品国精品久久99热| 麻豆精品在线视频| 欧美不卡三区| 亚洲第一在线综合在线| 久久亚洲精品欧美| 欧美大片91| 亚洲日韩欧美视频一区| 欧美14一18处毛片| 亚洲欧洲精品天堂一级| 99精品视频免费观看| 欧美伦理91i| 99精品欧美| 欧美专区在线观看一区| 国产九区一区在线| 久久精品人人爽| 欧美激情 亚洲a∨综合| 亚洲精品国精品久久99热| 欧美老女人xx| 宅男噜噜噜66一区二区| 午夜久久福利| 樱桃成人精品视频在线播放| 久热精品视频在线| 亚洲精品日韩一| 亚欧成人精品| 亚洲国产精品成人精品| 欧美人在线视频| 亚洲在线成人| 欧美成人第一页| 亚洲图中文字幕| 国产日韩一区| 欧美大片在线看免费观看| 在线亚洲+欧美+日本专区| 久久精品一二三| 亚洲精品免费电影| 国产麻豆精品theporn| 美国十次成人| 亚洲一本视频| 亚洲成色最大综合在线| 欧美18av| 欧美 日韩 国产 一区| 夜夜嗨av一区二区三区免费区| 国产精品女主播一区二区三区| 久久精品动漫| 在线视频日韩精品| 欧美激情第一页xxx| 亚洲一级影院| 亚洲激情在线播放| 国产精自产拍久久久久久蜜| 免费成人美女女| 先锋影音久久久| 日韩一级大片| 亚洲电影在线| 久久久久久久一区| 亚洲在线视频观看| 亚洲精品国产欧美| 国外成人网址| 国产欧美精品一区| 欧美日韩xxxxx| 欧美1区2区| 久久婷婷av| 午夜精品免费在线| 一本色道久久综合狠狠躁篇的优点 | 欧美激情精品久久久| 久久er精品视频| 亚洲午夜精品一区二区三区他趣| 亚洲电影免费观看高清完整版| 久久人人看视频|