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

liyuxia713

蹣跚前行者

常用鏈接

統(tǒng)計

Algorithms

C++

最新評論

深入理解strcpy,strncpy

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

看到這樣一個改錯題:
char p[5]; 
char* s="12345"
strcpy(p,s);
   cout << p << endl;
錯誤之處是很顯然的,作為字符串字面值的"12345"會在結(jié)尾處自動加上空字符null,從而長度是6,上面的strcpy是會越界的,從而是個越界錯誤。
問題是我以為這樣的程序編譯的時候會出錯呢!但是我在vc上運(yùn)行時是可以輸出正確結(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 的缺點(diǎn)了.
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的原因了吧!),如果實(shí)在要用到上述的代碼上,就在代碼最后加上p[5] = '\0'; 吧!

posted on 2009-04-26 20:59 幸運(yùn)草 閱讀(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>
            久久久精品动漫| 欧美伊久线香蕉线新在线| 蜜桃av久久久亚洲精品| 久久精品视频va| 亚洲黄色av| 一个色综合av| 国产一区二区三区四区老人| 欧美freesex交免费视频| 免费成人高清| 亚洲综合电影| 久久九九国产精品| 99精品国产福利在线观看免费| 一区二区三区四区五区在线| 国内久久婷婷综合| 亚洲激情一区二区| 国产精品国产三级国产专播品爱网 | 日韩视频永久免费观看| 欧美视频中文字幕| 久久精品国产69国产精品亚洲| 久久精品久久综合| 在线视频欧美日韩| 久久国产手机看片| 亚洲视频www| 久久久久久久久蜜桃| 久久精品国产免费| 99国产精品国产精品毛片| 亚洲欧美中日韩| 亚洲美女av在线播放| 午夜视频在线观看一区| 日韩视频专区| 久久久国际精品| 亚洲影视九九影院在线观看| 可以看av的网站久久看| 欧美一区二区三区日韩视频| 欧美裸体一区二区三区| 久久综合影视| 欧美日韩在线影院| 美女视频黄 久久| 国产精品美女主播| 亚洲精选一区二区| 最新日韩精品| 久久久久高清| 欧美在线一二三| 国产精品成人一区二区网站软件 | 亚洲午夜影视影院在线观看| 精品999网站| 午夜精品一区二区三区电影天堂 | 这里只有视频精品| 日韩小视频在线观看专区| 久久国产精品一区二区| 亚洲欧美日韩精品一区二区| 一区二区免费在线视频| 亚洲人成人一区二区在线观看| 久久精品国产第一区二区三区最新章节| 中日韩视频在线观看| 欧美日韩成人在线| 日韩视频精品在线| 亚洲美女av在线播放| 欧美精品久久久久久久久老牛影院| 欧美电影免费观看大全| 亚洲成人在线免费| 免费在线亚洲欧美| 91久久在线| 一本一本久久a久久精品综合麻豆| 欧美福利在线| 夜夜嗨av一区二区三区四季av| 99精品国产福利在线观看免费 | 亚洲综合第一页| 性欧美18~19sex高清播放| 国产精品久久久对白| 亚洲免费在线视频一区 二区| 午夜精品一区二区三区在线视| 国产精品乱码妇女bbbb| 亚洲欧美综合v| 老牛国产精品一区的观看方式| 激情综合视频| 欧美成va人片在线观看| 亚洲美女免费精品视频在线观看| 亚洲一区二区三区四区五区午夜| 国产精品日韩电影| 欧美伊人久久| 亚洲二区精品| 午夜精品久久| 亚洲电影免费观看高清完整版在线观看 | 亚洲欧美日韩一区在线| 久久精品一区二区三区四区| 在线精品在线| 欧美日韩和欧美的一区二区| 亚洲女同同性videoxma| 久久中文字幕一区| 亚洲毛片视频| 国产老女人精品毛片久久| 久久久噜噜噜| 9久re热视频在线精品| 久久精品一区二区三区四区| 亚洲日韩成人| 久久一区国产| 一区二区三区.www| 美玉足脚交一区二区三区图片| 日韩午夜黄色| 国内精品伊人久久久久av一坑| 欧美大片网址| 亚洲制服丝袜在线| 亚洲国产日韩在线一区模特| 欧美亚洲综合另类| 亚洲三级电影在线观看 | 欧美插天视频在线播放| 亚洲欧美日韩天堂一区二区| 欧美成人黑人xx视频免费观看| 亚洲一区尤物| 亚洲国产小视频在线观看| 国产精品一卡| 欧美日本韩国一区二区三区| 欧美影院午夜播放| 一本色道88久久加勒比精品| 欧美 日韩 国产在线| 性色一区二区| 亚洲午夜小视频| 亚洲精品国产精品乱码不99| 好吊妞**欧美| 国产精品亚洲片夜色在线| 欧美大学生性色视频| 久久免费黄色| 久久精品国产视频| 亚洲欧美日韩电影| 亚洲一级在线观看| 一区二区欧美精品| 亚洲国产欧美一区二区三区久久 | 国产精品99久久久久久白浆小说| 极品尤物av久久免费看| 国产欧美91| 国产精品区二区三区日本 | 美乳少妇欧美精品| 亚洲欧美影音先锋| 亚洲免费视频观看| 亚洲专区在线| 亚洲一区二区成人| 亚洲一区国产视频| 亚洲一区日本| 亚洲欧美日韩国产成人| 亚洲欧美日韩视频二区| 亚洲午夜在线观看| 午夜精品在线视频| 欧美在线看片| 久久久久久国产精品mv| 久久久综合网站| 久久亚洲综合色一区二区三区| 久久久美女艺术照精彩视频福利播放| 欧美中文字幕视频| 久久影院午夜论| 欧美不卡在线| 欧美调教视频| 国产欧美亚洲日本| 国产一区二区三区网站| 精品动漫3d一区二区三区| 亚洲二区三区四区| 99日韩精品| 性高湖久久久久久久久| 久久亚洲电影| 亚洲日本电影| 亚洲欧美国产高清| 久久婷婷国产综合精品青草| 你懂的国产精品| 国产精品国产三级国产普通话三级 | 欧美一级午夜免费电影| 久久亚洲图片| 欧美日在线观看| 国产亚洲va综合人人澡精品| 亚洲福利视频专区| 亚洲午夜久久久久久久久电影院| 性欧美激情精品| 欧美成人一二三| 中国成人亚色综合网站| 久久久久久精| 国产精品福利在线观看| 影音先锋日韩资源| 亚洲桃色在线一区| 狂野欧美一区| 一区二区三区**美女毛片| 久久久噜噜噜久久中文字幕色伊伊 | 久久久999精品视频| 欧美黄色大片网站| 韩国av一区| 亚洲专区一区| 亚洲第一中文字幕| 销魂美女一区二区三区视频在线| 欧美成人精品三级在线观看| 国产欧美三级| 亚洲手机视频| 亚洲经典在线看| 久久精品视频免费播放| 国产精品久久久久99| 亚洲日韩欧美视频一区| 久久中文字幕一区| 亚洲午夜一级| 欧美午夜不卡视频| 99精品视频免费观看| 巨胸喷奶水www久久久免费动漫| 亚洲一区二区三区高清不卡| 欧美久久久久中文字幕|