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

liyuxia713

蹣跚前行者

常用鏈接

統計

Algorithms

C++

最新評論

深入理解strcpy,strncpy

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

看到這樣一個改錯題:
char p[5]; 
char* s="12345"
strcpy(p,s);
   cout << p << endl;
錯誤之處是很顯然的,作為字符串字面值的"12345"會在結尾處自動加上空字符null,從而長度是6,上面的strcpy是會越界的,從而是個越界錯誤。
問題是我以為這樣的程序編譯的時候會出錯呢!但是我在vc上運行時是可以輸出正確結果的,這讓我很是納悶!后來找到了strcpy的源代碼才知原因,strcpy函數是不進行越界處理的. 又因為strcpy連null一起復制,從而p能輸出正確的結果"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雖然不進行越界處理,仍然是個挺好的函數呢,但是注意了,下面的代碼就能暴露出strcpy 的缺點了.
char p[5];
char *= "12345678";
strcpy(p,s);
cout 
<< p <<endl; //輸出12345678,而不是我們所設想的12345
為了不因不知s的長度而犯下錯誤,推薦使用strncpy。但是是不是用了strncpy就萬無一失了呢?看下面的代碼:
char p[5];
char* s = "12345";
strncpy(p,s,
5);
cout 
<< p <<endl; //12345*&^(后面表示亂碼)
不是都限制個數了么?為什么后面又有亂碼?
問題來自在上述情形strncpy是不會復制字符串s后面的null的,不是以null結束的p不會輸出正確結果的。
仍然給出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這么不穩定,為何用它?strncpy經常用于修改一個長字符串中間的一部分(看出不復制null的原因了吧!),如果實在要用到上述的代碼上,就在代碼最后加上p[5] = '\0'; 吧!

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

評論

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

不是strncpy不穩定
數組長度不夠,讓strncpy越界再加個\0 ?
  回復  更多評論   

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久大逼视频| 欧美激情中文字幕在线| 国产精品嫩草99av在线| 午夜电影亚洲| 亚洲欧美精品在线| 国模精品一区二区三区色天香 | 女主播福利一区| 亚洲国产黄色| 亚洲精品一区二区三区在线观看| 欧美精品色一区二区三区| 亚洲精品在线观看免费| 一区二区三区欧美在线| 国产欧美69| 欧美高清你懂得| 欧美精品一区二区三区四区 | 国产女人18毛片水18精品| 久久xxxx| 欧美精品一区二区三区蜜桃 | 国产在线日韩| 亚洲福利一区| 国产精品xnxxcom| 久久久久www| 欧美精品一区二| 久久精品国产久精国产思思| 久久久五月天| 亚洲一区二区三区四区视频| 久久成人久久爱| 一本到12不卡视频在线dvd| 亚洲欧美日韩一区二区| 亚洲国产mv| 欧美在线一区二区| 一区二区黄色| 久久亚洲视频| 欧美一区二区三区在线观看视频| 老鸭窝91久久精品色噜噜导演| 亚洲午夜电影在线观看| 老司机aⅴ在线精品导航| 亚洲欧美成人一区二区三区| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲欧美日韩一区在线| 欧美成人综合在线| 麻豆精品91| 国产毛片精品国产一区二区三区| 亚洲激情自拍| 一区二区三区在线不卡| 亚洲天堂免费观看| 日韩亚洲欧美成人| 久久亚洲精品一区| 欧美在线www| 欧美日韩网站| 亚洲人精品午夜| 91久久精品www人人做人人爽| 午夜影院日韩| 欧美一区二区三区免费看 | 玖玖国产精品视频| 久久久久久久一区二区三区| 国产精品日日摸夜夜添夜夜av| 亚洲人成网站在线播| 亚洲欧洲精品天堂一级| 久久另类ts人妖一区二区| 久久久美女艺术照精彩视频福利播放 | 亚洲一区黄色| 亚洲少妇一区| 欧美色精品天天在线观看视频| 欧美激情四色| 亚洲精品视频在线观看免费| 蘑菇福利视频一区播放| 欧美黄色精品| 亚洲精品乱码久久久久| 欧美国产一区二区| 日韩视频在线免费观看| 一区二区三区视频在线播放| 欧美日韩亚洲综合| 一区二区三区四区五区在线| 亚洲欧美一区二区激情| 国产欧美不卡| 久久久噜噜噜| 亚洲茄子视频| 亚洲欧美国产高清| 韩日欧美一区二区| 麻豆成人在线播放| 亚洲精品一级| 欧美一级理论性理论a| 国产亚洲成av人在线观看导航| 欧美在线视频一区二区| 欧美高清日韩| 亚洲手机视频| 国产在线不卡| 欧美激情国产日韩| 亚洲性线免费观看视频成熟| 久久久久国内| 亚洲精品一区二区三区av| 国产精品mm| 久久久国产一区二区三区| 亚洲人成精品久久久久| 校园激情久久| 亚洲人成毛片在线播放女女| 欧美性做爰毛片| 久久综合国产精品| 亚洲作爱视频| 欧美成人免费播放| 午夜天堂精品久久久久| 在线免费不卡视频| 国产精品高潮呻吟久久| 久久手机精品视频| 一区二区三区 在线观看视频| 久久人人九九| 亚洲欧美激情视频在线观看一区二区三区| 国产日韩欧美| 欧美日韩一区二区免费视频| 久久国产天堂福利天堂| 日韩一级裸体免费视频| 免费试看一区| 欧美一区国产二区| 在线一区观看| 亚洲精品乱码| 亚洲大胆女人| 国产日韩欧美日韩大片| 欧美视频在线播放| 欧美成ee人免费视频| 欧美一区二区播放| 中文av一区二区| 亚洲品质自拍| 亚洲国产高清视频| 久久综合色影院| 久久激五月天综合精品| 亚洲免费中文| 亚洲午夜在线视频| av成人毛片| 亚洲久色影视| 亚洲精品久久久久久久久久久久久| 国产情侣久久| 国产精品尤物| 国产乱码精品一区二区三区av | 久久久久国产精品午夜一区| 一区二区不卡在线视频 午夜欧美不卡在 | 久久香蕉精品| 久久精品国产69国产精品亚洲| 亚洲一区尤物| 亚洲一区二区视频在线观看| 亚洲日本欧美| 日韩视频一区二区在线观看| 亚洲国产一二三| 亚洲激情av| 亚洲久久在线| 亚洲午夜影视影院在线观看| 亚洲视频碰碰| 亚洲欧美三级在线| 国产婷婷色一区二区三区四区| 欧美中文字幕在线观看| 亚洲综合丁香| 性做久久久久久| 欧美在线一二三四区| 欧美专区福利在线| 久久亚洲综合色一区二区三区| 久久久久成人精品| 欧美波霸影院| 亚洲第一狼人社区| 亚洲免费福利视频| 亚洲欧美精品| 久久免费视频在线| 欧美精品三级日韩久久| 欧美午夜电影在线观看| 国产美女精品视频| 亚洲成人资源网| 一区二区三区精品视频在线观看| 亚洲自拍电影| 久久久久久亚洲精品不卡4k岛国| 欧美**人妖| 99精品视频免费在线观看| 亚洲综合99| 老司机精品导航| 国产精品成人免费| 黑人巨大精品欧美一区二区小视频| 在线观看国产成人av片| 9久re热视频在线精品| 欧美影院一区| 亚洲国产精彩中文乱码av在线播放| 亚洲美女中出| 久久精品亚洲精品国产欧美kt∨| 欧美激情精品久久久久久蜜臀| 国产精品国产三级国产普通话三级| 国产亚洲欧美日韩精品| 日韩一级黄色av| 欧美一区二区三区视频| 亚洲国产精品久久久久婷婷老年| 亚洲先锋成人| 欧美国产免费| 国产亚洲精品激情久久| 亚洲视频电影在线| 免费观看30秒视频久久| 亚洲综合日韩在线| 欧美激情在线狂野欧美精品| 国产色产综合产在线视频| 妖精成人www高清在线观看| 久久综合中文字幕| 亚洲伊人网站| 欧美午夜一区| 亚洲欧洲精品一区二区| 久热精品视频|