實現部分庫函式

2021-07-12 03:23:49 字數 1953 閱讀 4865

1.模擬實現strncat

//與strcat無異,只是追加的塊大小不一樣,strncat只是向後追加n個位元組的內

char *my_strncat(char * dst, const char *src,

int count)

while (count--)       // 用數count控制迴圈的次數

*dst++ = *src++;

}*dst = '\0';

return p;

}2.模擬實現strncmp

//與strcmp無異,只是比較的塊大小不一樣,strncmp只是向後比較n個位元組的內容

int my_strncmp(const char *src, const char

*dst, int count)

if (!count)

break;

}if (ret > 0)

ret = 1;

else if (ret<0)

ret = -1;

return ret;

3.模擬實現strncpy

//與strcpy無異,只是拷貝的塊大小不一樣,strncpy只是向後拷貝n個位元組的內容

char *my_strncpy(char * dst, const char *src, int count)

*dst = '\0';

return p;

4.模擬實現atof

**如下:

double _atof(const char *str)

測試用例如下:

int main()

執行結果如下:

5.模擬實現memset:

void *_memset(void *dst,int val,size_t count)

void *start = dst;

while (count--)  

*(char *)dst = (char)val;

dst = (char *)dst + 1;

return(start);

6.模擬實現memmove:

void *_memmove(void * dst,const void * src,size_t count)

void * ret = dst;

if (dst <= src || (char *)dst >= ((char *)src + count)) 

while (count--) 

*(char *)dst = *(char *)src;

dst = (char *)dst + 1;

src = (char *)src + 1;

else

dst = (char *)dst + count - 1;

src = (char *)src + count - 1;

while (count--)

*(char *)dst = *(char *)src;

dst = (char *)dst - 1; 

src = (char *)src - 1;

return(ret);

測試用例如下:

int main()

char arr = "qwert";

char arr1[10] = ;

memmove(arr1, arr, 3);

cout << arr1 << endl;

system("pause");

return 0;

執行結果如下:

本文出自 「零點時光」 部落格,請務必保留此出處

string部分庫函式的實現

1 模擬實現strcpy 思路分析 源字串的字元逐個賦值給目標字串 如下 include include char my strcpy char dest,const char src return ret int main my strcpy arr2,arr1 printf 拷貝完成後的字串 s...

部分庫函式原始碼

部分庫函式原始碼 char strcpy char strdes,const char strsrc return s t char strcat char strdes,const char strsrc 注意 1.不能向形參傳遞指向字串常量的指標 本題中dst和src都是指向串常量的指標,字串常...

C語言中部分庫函式的模擬實現

標頭檔案的統一使用這三個 include include includestrct的作用是將乙個字串接到另乙個字串的後面 模擬實現strcat char my strcat char dest,const char src while dest src return ret int main str...