PS:初學算法,開始刷leetcode,Rotate array的預備知識(寫的代碼Time Limit Exceed難過)于是百度高效算法,本篇作為預備知識。
1、strcpy和strncpy函數
這個不陌生,大一學C語言講過,其一般形式為strcpy(字符數組1,字符串2)作用是將字符串2復制到字符數組1中去。
EX:
1
2
|
char str1[10]= '' ,str2[]={ "China" }; strcpy (str1,str2); |
strncpy(str1,str2,2);作用是將str2中最前面2個字符復制到str1中,取代str1中原有的最前面2個字符。
2、memcpy函數
c和c++使用的內存拷貝函數,memcpy函數的功能是從源src所指的內存地址的起始位置開始拷貝n個字節到目標dest所指的內存地址的起始位置中。
用法:void *memcpy(void *dest, const void *src, size_t n);
EX:
1
2
3
|
char *s1 = "csdn" ; char *s2 = new char [10]; char *s3 = memcpy (s2,s1,5); |
3、strcpy和memcpy的區別。
1、復制的內容不同。strcpy只能復制字符串,而memcpy可以復制任意內容,例如字符數組、整型、結構體、類等。
2、復制的方法不同。strcpy不需要指定長度,它遇到被復制字符的串結束符"\0"才結束,所以容易溢出。memcpy則是根據其第3個參數決定復制的長度。
3、用途不同。通常在復制字符串時用strcpy,而需要復制其他類型數據時則一般用memcpy
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!