strncpy就是將src中的n個字元拷貝到dest中,要注意幾個點:
如果src長度小於len,用『\0』 補齊len的長度。注意用strlen判斷src長度時,要明白strlen是向後找『\0』來計算長度,所以,如果是用單個字元賦值,不要忘記在結尾加上『\0』,如果要給src限定長度時也不要忘記算上『\0』的長度
如果src長度大於len,只會拷貝len個字元,且不會以』\0』結束。
有時候還要考慮到記憶體重疊的問題,這裡給出了兩種方法,同樣不要忘了判斷src長度小於len的情況
**如下:
#define _crt_secure_no_warnings
#include
#include
#include
//不考慮記憶體重疊
char
*mystrncpy1
(char
* dest,
const
char
* src, size_t len)
while
(len--
)while
(offset--
)//如果源字串長度小於len,此時需要手動用'\0'補齊len
return ret;
}//考慮記憶體重疊
char
*mystrncpy2
(char
* dest,
const
char
* src, size_t len)
if(dest > src && dest < src + len)
//記憶體重疊,從後往前複製
else
}while
(offset--
)//如果源字串長度小於len,此時需要手動用'\0'補齊len
return ret;
}int
main()
;printf
("%s\n"
,mystrncpy1
(arr2, arr1,5)
);return0;
}
這裡主要來測試src
c語言模擬實現strncpy
在c語言中,為了實現字串的拷貝可以用到strcpy函式,而這個函式只能實現所有字元的拷貝,為了控制拷貝的字元數,則要用到strncpy函式。通過模擬實現strncpy函式來完成這個函式的功能。在該函式的拷貝中,可以根據你的需要拷貝相應數量的字元,在字串的拷貝中,如果你想拷貝的字元數超過了所能拷貝的字...
模擬實現Spring IOC
通過在類上標註 registration 註冊進容器,injection從容器注入物件 容器類 public class springcontainer else bean.setbeanclass c mappropsmap new hashmap 處理注入屬性 field props c.get...
模擬實現strcmp
函式簡介 原型 int strcmp const char s1,const char s2 所在標頭檔案 string.h 功能 比較字串s1和s2。一般形式 strcmp 字串1,字串2 說明 當s1注意不是 1 當s1 s2時,返回值 0 當s1 s2時,返回正數 注意不是1 如下 int m...