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

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 幸運草 閱讀(3390) 評論(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>
            久久久久9999亚洲精品| 亚洲字幕一区二区| 欧美日韩另类一区| 日韩午夜一区| 99re66热这里只有精品3直播| 欧美成人国产| 一区二区三区免费看| 亚洲免费av片| 国产欧美精品久久| 美女精品国产| 欧美日韩高清在线| 亚洲欧美日韩一区二区三区在线| 亚洲一区免费在线观看| 韩国成人精品a∨在线观看| 免费在线欧美黄色| 欧美日韩国产精品一区| 午夜欧美精品久久久久久久| 欧美伊人久久久久久午夜久久久久 | 亚洲精品国产精品乱码不99按摩| 亚洲国产精品va在看黑人| 欧美成人69| 欧美伊久线香蕉线新在线| 久久综合成人精品亚洲另类欧美| 99在线精品视频在线观看| 亚洲专区免费| 亚洲精品欧美一区二区三区| 亚洲一区二区视频在线观看| 影音先锋另类| 亚洲香蕉视频| 亚洲国产成人久久综合| 在线一区视频| 亚洲激情偷拍| 香蕉国产精品偷在线观看不卡| 亚洲电影观看| 午夜欧美精品| 亚洲男女自偷自拍| 欧美插天视频在线播放| 久久激情网站| 欧美婷婷久久| 欧美大片免费观看| 国产专区欧美精品| 一本色道久久88综合日韩精品| 黑丝一区二区| 亚洲伊人色欲综合网| 亚洲精品久久7777| 久久美女艺术照精彩视频福利播放| 亚洲专区一区| 欧美日本不卡视频| 亚洲高清123| 一区二区视频免费完整版观看| 亚洲天堂男人| 亚洲中字黄色| 欧美日韩中文字幕日韩欧美| 欧美激情一区二区三区全黄 | 国产精品护士白丝一区av| 欧美国产视频在线观看| 狠狠狠色丁香婷婷综合久久五月 | 亚洲天天影视| 亚洲一区二区av电影| 欧美高清影院| 亚洲国产成人av好男人在线观看| 狠狠色狠狠色综合日日91app| 欧美一区二区三区四区夜夜大片| 午夜视频一区在线观看| 欧美丝袜第一区| 亚洲视频免费在线观看| 亚洲欧美激情精品一区二区| 欧美性猛交一区二区三区精品| 亚洲精品免费网站| 亚洲一区二区精品视频| 欧美性做爰毛片| 在线亚洲国产精品网站| 亚洲欧美日韩精品在线| 国产精品视频xxx| 欧美一区成人| 美女任你摸久久| 亚洲精品国精品久久99热一| 欧美精品一区二| 一区二区三区国产在线观看| 亚洲欧美激情精品一区二区| 国产欧美日韩精品在线| 久久高清国产| 亚洲第一二三四五区| 亚洲视频一区二区在线观看| 欧美午夜精彩| 午夜精品视频在线| 欧美xart系列高清| 9i看片成人免费高清| 国产精品国产三级国产专播精品人| 亚洲网站在线| 美女精品自拍一二三四| 日韩午夜三级在线| 国产情侣久久| 欧美a级一区二区| 中文欧美日韩| 巨乳诱惑日韩免费av| 亚洲乱码久久| 久久精品免视看| 亚洲成在人线av| **性色生活片久久毛片| 免费久久99精品国产| 一本久道久久久| 久久亚洲精品一区| 中文国产一区| 韩国一区二区在线观看| 欧美日韩美女| 久久视频精品在线| 亚洲色图制服丝袜| 欧美韩国在线| 久久久www免费人成黑人精品| 99ri日韩精品视频| 狠狠色丁香婷婷综合| 欧美日韩精品一区| 久久婷婷国产麻豆91天堂| 亚洲无限av看| 亚洲黄一区二区三区| 久久久久国产免费免费| 中文成人激情娱乐网| 亚洲国产日韩一级| 国产在线成人| 国产精品网站在线观看| 欧美日韩网站| 欧美91大片| 久久久久久久综合色一本| 亚洲一区二区黄| 日韩一区二区精品视频| 亚洲第一精品福利| 久久一区视频| 久久久久国色av免费看影院| 午夜精品国产| 国产精品99久久99久久久二8| 有坂深雪在线一区| 激情久久久久| 国产一区二区剧情av在线| 国产精品视频99| 国产精品久久久久aaaa九色| 欧美日本亚洲| 欧美日韩国产美女| 欧美日本一区二区三区| 欧美成人亚洲| 欧美精品二区| 欧美精品 国产精品| 欧美大学生性色视频| 欧美成人免费va影院高清| 狂野欧美一区| 欧美高清在线播放| 欧美精品三级日韩久久| 欧美日韩国产综合在线| 欧美日韩国产一级| 国产精品成人免费视频| 欧美吻胸吃奶大尺度电影| 欧美色网一区二区| 国产精品视频区| 国产一区二区激情| 亚洲福利在线看| 亚洲另类在线视频| 一本色道久久综合精品竹菊 | 亚洲第一天堂无码专区| 亚洲国产精品va| 亚洲美女区一区| 宅男噜噜噜66一区二区66| 亚洲一区日本| 久久视频国产精品免费视频在线| 久久婷婷综合激情| 欧美激情黄色片| 99精品热视频只有精品10| 亚洲一区二区三区免费观看 | 欧美黄色免费网站| 日韩视频一区二区三区| 亚洲综合另类| 免费视频一区| 国产精品女主播在线观看| 国产一区欧美日韩| 亚洲精品日韩一| 欧美一级精品大片| 亚洲电影观看| 亚洲一区欧美| 蜜桃av噜噜一区| 久久婷婷麻豆| 欧美日韩中文字幕综合视频 | 免费观看国产成人| 国产精品裸体一区二区三区| 国产亚洲欧美aaaa| 日韩午夜在线电影| 久久久不卡网国产精品一区| 亚洲国产免费| 久久国产毛片| 国产精品高清在线观看| 亚洲国产精品ⅴa在线观看| 亚洲一级二级| 欧美高清视频在线播放| 香蕉久久夜色精品| 欧美精品一卡| 亚洲第一主播视频| 欧美与欧洲交xxxx免费观看 | 亚洲激情成人| 久久精品一区二区三区不卡牛牛 | 欧美激情在线有限公司| 国产综合欧美在线看| 亚洲欧美日韩视频二区|