首先有幾點說明:
舉例:char s1[100]=;
char dest[100]=
此時如果執行strcpy(dest,s1)函式,則實際上只將abc複製給了dest,也就是說dest="abc" ,
而不是期望的dest=" abcd efg"
關於記憶體區域重疊的問題可以參見
部落格<1>
【函式原型】char* strstr( char *str, char * substr );
【用處】strstr()函式用來檢索子串在字串中首次出現的位置,其原型為:
【引數說明】str為要檢索的字串,substr為要檢索的子串。
【返回值】返回字串str中第一次出現子串substr的位址;如果沒有檢索到子串,則返回null。
【函式示例】strstr()函式的使用。
#include#include#includeint main()
system("pause");
return 0;
}
<2>
【函式原型】
char* strcpy(char* dest, const char *src);
【用處】把從src位址開始且含有null結束符的字串複製到以dest開始的位址空間
【引數說明】src為被拷貝的源字串首位址,dest為目標位址。
【返回值】返回指向dest的指標
【注意】:src和dest所指記憶體區域不可以重疊且dest必須有足夠的空間來容納src的字串。
【函式示例】:strcpy的使用
<3>
【函式原型】char* strncpy(char*dest,char*src,size_tn);
【用處】複製字串src中的內容到字串dest中,複製多少由size_tn的值決定
【返回值】返回指向dest的指標
【注意】
(1)src和dest所指記憶體區域不可以重疊且dest必須有足夠的空間來容納src的字元長度+'\0'。
(2)如果n
(3)如果src的長度小於n個位元組,則以null填充dest直到複製完n個位元組。
<4>
【函式原型】char *strcat(char *dest,char *src);
【用處】把src所指字串新增到dest結尾處(覆蓋dest結尾處的'\0')。
【返回值】返回指向dest的指標。
【注意】 src和dest所指記憶體區域不可以重疊且dest必須有足夠的空間來容納src的字串。
<5>
非常有用的字串處理函式 【
原型】:void * memmove( void* dest, const void* src, size_t count );
【用處】memmove用於從src拷貝count個位元組到dest,如果目標區域和源區域有重疊的話,memmove能夠保證源串在被覆蓋之前將重疊區域的位元組拷貝到目標區域中。但複製後src內容會被更改。但是當目標區域與源區域沒有重疊則和memcpy函式功能相同。
【返回值】指向dest的指標
<6>
【函式原型】void *memset(void *s, int ch, size_t n);
【用處】將s中當前位置後面的n個位元組 (typedef unsigned int size_t )用 ch 替換並返回 s 。作用是在一段記憶體塊中填充某個給定的值,常用於初始化操作,它是對較大的結構體或陣列進行清零操作的一種最快方法。
【注意】該函式是逐字節填充的,因此一般只能用於處理字串。
注意:指標和陣列有以下區別
char s[100]="asdasdasdasdas";
char *a=s;
而,sizeof(a)=4,sizeof(s)=4*100;
<7>
【函式原型】: char *strset(char *str, char c);
【功 能】: 將乙個串中的所有字元都設為指定字元
C語言 string h中的常用函式
1.strlen 函式名 strlen 功能 求得字串的長度 說明 strlen str 為字串str的長度 例項 include include intmain 2.strcpy 函式名 strcpy 功 能 將乙個字串賦值給另乙個字串 說明 strcpy str1,str2 表示將str2賦值給...
C語言string h庫中的函式簡介
基本介紹 增刪改查 一 string 的 insert s.insert p,t p迭代器,t值,插入在p之前,返回新元素的迭代器 s.insert p,n,t n個值為t元素,返回新新增的第乙個 s.insert p,b,e b e迭代器中的內容 s.insert p,il il花括號元素列表 返...
C語言string h常用函式總結
從源src所指的記憶體位址的起始位置開始拷貝n個位元組到目標dest所指的記憶體位址的起始位置中.由src所指記憶體區域複製count個位元組到dest所指記憶體區域。memmove用於從src拷貝count個字元到dest,如果目標區域和源區域有重疊的話,memmove能夠保證源串在被覆蓋之前將重...