程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C/C++字符串函數之復制函數詳解

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

編輯:關於C++

C/C++字符串函數之復制函數詳解。本站提示廣大學習愛好者:(C/C++字符串函數之復制函數詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是C/C++字符串函數之復制函數詳解正文


忽然發明對字符串函數缺少體系的懂得,所以花了一點時光專門整頓下,在此記載之,以便利本身及有須要的人應用。

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++字符串函數之復制函數詳解就是小編分享給年夜家的全體內容了,願望能給年夜家一個參考,也願望年夜家多多支撐。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved