模擬實現strncpy

2021-09-02 00:21:39 字數 1241 閱讀 6355

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...