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

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>
            欧美人成在线| 麻豆freexxxx性91精品| 欧美日韩国产高清| 国产精品99久久久久久久久久久久| 欧美激情一区二区三区不卡| 久久躁狠狠躁夜夜爽| 亚洲激情第一页| 日韩香蕉视频| 国产日韩精品入口| 男女激情久久| 欧美性色视频在线| 久久综合伊人77777| 欧美大片在线观看一区| 亚洲欧美在线一区| 久久久亚洲精品一区二区三区 | 国产精品揄拍500视频| 久久精精品视频| 欧美14一18处毛片| 国产亚洲午夜| 亚洲欧美日韩成人高清在线一区| 久久精品夜夜夜夜久久| 亚洲人体影院| 亚洲欧美日韩成人高清在线一区| 一色屋精品视频在线观看网站| 亚洲欧洲精品一区| 欧美日韩在线影院| 开元免费观看欧美电视剧网站| 欧美国产一区二区| 久久久久久久成人| 99re热这里只有精品免费视频| 亚洲午夜免费视频| 亚洲精选国产| 久久久精品网| 羞羞色国产精品| 欧美黑人在线播放| 久久精品国产久精国产一老狼| 欧美精品国产| 欧美成人一区二区三区片免费| 国产精品推荐精品| 亚洲日本视频| 亚洲大胆女人| 久久xxxx| 久久视频在线视频| 国产欧美一区二区三区国产幕精品| 91久久国产综合久久91精品网站| 国产一区导航| 亚洲欧美中文日韩v在线观看| 亚洲午夜精品久久| 欧美精品videossex性护士| 欧美成人免费全部| 亚洲高清在线观看一区| 久久精品日韩欧美| 久久精精品视频| 国产小视频国产精品| 亚洲欧美不卡| 欧美一区二区| 国产欧美日本| 午夜精品福利在线| 欧美一级电影久久| 国产精品永久| 久久超碰97中文字幕| 久久精品女人| 伊人成年综合电影网| 久久精品一区二区三区不卡| 久久久久高清| 黄色日韩网站视频| 久久亚洲精品伦理| 欧美激情精品久久久久久免费印度| 国内精品嫩模av私拍在线观看| 欧美在线免费看| 欧美xart系列高清| 亚洲人成亚洲人成在线观看图片| 免费日韩成人| 亚洲人成亚洲人成在线观看| 一区电影在线观看| 国产精品国色综合久久| 亚洲欧美成人综合| 嫩草成人www欧美| 亚洲欧洲三级电影| 欧美日韩另类国产亚洲欧美一级| 亚洲色图自拍| 久久精品国产久精国产爱| 在线精品观看| 欧美三级资源在线| 欧美一站二站| 亚洲国产免费看| 亚洲欧美日韩一区| 国模精品一区二区三区色天香| 久久久久久久激情视频| 亚洲高清视频中文字幕| 亚洲午夜激情| 一区国产精品| 欧美亚男人的天堂| 久久中文精品| 亚洲图片在线| 女人色偷偷aa久久天堂| 在线亚洲精品福利网址导航| 国产精品一区二区三区免费观看| 欧美在线你懂的| 亚洲精品乱码久久久久久按摩观| 欧美一级在线亚洲天堂| 在线播放日韩| 国产精品久久久久久久9999| 久久久久久综合| 在线中文字幕不卡| 欧美粗暴jizz性欧美20| 校园春色综合网| 亚洲激情综合| 狠狠色狠狠色综合人人| 欧美日韩日本网| 久久婷婷久久| 亚洲一区一卡| 亚洲乱码视频| 欧美国产视频日韩| 久久久久九九九| 亚洲午夜精品福利| 日韩视频一区二区在线观看| 国内精品久久久久影院薰衣草| 欧美另类人妖| 免费精品视频| 久久久99国产精品免费| 亚洲欧美伊人| 亚洲自拍偷拍麻豆| 在线不卡欧美| 国产在线不卡视频| 国产欧美日韩综合一区在线观看| 欧美精品xxxxbbbb| 欧美.日韩.国产.一区.二区| 久久精品女人| 久久久久久久精| 篠田优中文在线播放第一区| 亚洲网站啪啪| 亚洲自啪免费| 亚洲免费一在线| 亚洲视频在线二区| 亚洲自拍另类| 亚洲欧美影院| 欧美专区中文字幕| 欧美综合激情网| 久久久五月婷婷| 久久久久久高潮国产精品视| 久久九九99| 久久久青草青青国产亚洲免观| 欧美一级久久久久久久大片| 亚洲欧美国产77777| 性欧美xxxx大乳国产app| 亚洲欧美一区二区三区在线| 欧美一区二区免费观在线| 欧美一区高清| 久久视频在线免费观看| 久久久欧美精品sm网站| 美女精品国产| 欧美日本国产一区| 国产精品成人aaaaa网站| 国产精品视频不卡| 韩国av一区二区三区| 亚洲大片av| 亚洲伦伦在线| 国产精品99久久久久久白浆小说| 亚洲欧美激情一区二区| 久久国产免费看| 亚洲电影观看| 一区二区三区免费看| 欧美一区二区视频在线| 亚洲男女毛片无遮挡| 久久久久久久久久码影片| 免费观看一级特黄欧美大片| 亚洲经典视频在线观看| 亚洲一二区在线| 久久综合九色综合久99| 欧美日韩精品一区二区| 国产欧美日韩精品丝袜高跟鞋| 亚洲成色精品| 亚洲男女自偷自拍| 欧美大片一区二区| 亚洲欧美激情一区| 蜜月aⅴ免费一区二区三区| 欧美体内she精视频在线观看| 国产日韩精品电影| 日韩视频三区| 久久蜜桃精品| 亚洲一区欧美一区| 免费观看日韩| 国产性猛交xxxx免费看久久| 亚洲另类在线一区| 久久综合久久综合久久| 一本一本久久a久久精品牛牛影视| 久久国产一二区| 国产精品久久久久久av下载红粉| ●精品国产综合乱码久久久久| 亚洲一本视频| 亚洲丶国产丶欧美一区二区三区| 亚洲欧美日韩另类精品一区二区三区| 能在线观看的日韩av| 国产一区二区三区久久久久久久久| 日韩一级不卡| 欧美国产三级| 久久综合一区| 国产综合第一页| 欧美在线不卡视频|