国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C/C++字符串函數之復制函數詳解

2020-05-23 14:00:34
字體:
來源:轉載
供稿:網友

突然發現對字符串函數缺乏系統的了解,所以花了一點時間專門整理下,在此記錄之,以方便自己及有需要的人使用。

C/C++字符串函數的頭文件:string.h

復制函數主要有4個,如下:

1、char * strcpy(char* destination,const char * source);2、char* strncpy(char* destination,const char* source,size_t num);3、void * memcpy(void* destination,const void* source,size_t num);4、void * memmove(void* destination,const void* source,size_t num);

功能及用法說明:

1、strcpy:將由source指針指示的C 字符串(包括結尾字符)復制到destination指針指示的區域中。該函數不允許source和destination的區域有重疊,同時,為了避免溢出,destination區域應該至少和source區域一樣大。

2、strncpy:復制source的前num字符到destination。如果遇到null字符('/0'),且還沒有到num個字符時,就用(num - n)(n是遇到null字符前已經有的非null字符個數)個null字符附加到destination。注意:并不是添加到destination的最后,而是緊跟著由source中復制而來的字符后面。下面舉例說明:

char des[] = "Hello,i am!";char source[] = "abc/0def";strncpy(des,source,5);

此時,des區域是這樣的:a,b,c,/0,/0,i,空格,a,m,! 

/0,/0并不是添加在!的后面。

這里,需要注意strcpy僅僅復制到null字符就結束了。

3、memcpy:將source區域的前num個字符復制到destination中。該函數不檢查null字符(即將null字符當作普通字符處理),意味著將復制num個字符才結束。該函數不會額外地引入null字符,即如果num個字符中沒有null字符,那么destination中相應字符序列中也沒有null字符。同strcpy的區別:允許將source中null字符后面的字符也復制到destination中,而strcpy和strncpy則不可以。

4、memmove:同memcpy完成同樣的功能,區別是,memmove允許destination和source的區域有重疊。而其他三個函數不允許。

例子:

char str[] = "This is a test!";memmove(str+2,str+10,4);

此時,str變成:Thtests a test!

以上這篇C/C++字符串函數之復制函數詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 抚宁县| 铜陵市| 宁武县| 晋城| 博湖县| 蒙自县| 迁西县| 兴文县| 苍南县| 隆德县| 云和县| 大安市| 宁陵县| 建宁县| 曲周县| 兴义市| 潞城市| 阳东县| 广灵县| 松溪县| 榆树市| 佛冈县| 衡阳县| 新绛县| 方正县| 洪湖市| 体育| 台南市| 苏尼特右旗| 偃师市| 泾源县| 柏乡县| 铅山县| 临澧县| 呼伦贝尔市| 昭觉县| 南开区| 浙江省| 家居| 惠安县| 轮台县|