C C 對常見字串庫函式的實現

2021-07-30 23:46:42 字數 3276 閱讀 2753

原文 : 

strcpy

函式原型:char* _strcpy(char* dest,char* src)

函式功能:將str所指由nullptr的字串複製到dst所指的陣列中,並返回dest的指標。

函式說明:保證src和dest所指記憶體區域不能重疊且dest必須有足夠的空間來容納src的字串。

函式實現

char* _strcpy(char* dest, const

char* src)

strncpy

函式原型:char* _strncpy(char* dest,const char* src,size_t n)

函式功能:把src所指由nullptr結尾的字串前n個位元組複製到dest所指的陣列中。

函式說明:如果src的前n個位元組不含nullptr,則結果不會以nullptr結束;如果src的的長度小於n個位元組,則以nullptr填充dest直到複製完n個位元組;保證src和dest所指記憶體區域不能重疊且dest必須有足夠的空間來容納src的字串。

函式實現

char* _strncpy(char* dest, const

char* src, int n)

strcat

函式原型:char* _strcat(char dest, const char src)

函式功能:把src所指字串新增到dest結尾處(覆蓋dest結尾處的'\0')並新增'\0'。

函式說明:保證src和dest所指記憶體區域不能重疊且dest必須有足夠的空間來容納src的字串。

函式實現

char* _strcat(char* dest, const

char* src)

注意:使用時若實參dest的建立為char* dest=「abcd」,雖然可以編譯通過,但執行時會引發中斷,因為「abcd」為字串常量,不可修改,可以使用char dest[n]="abcd"進行建立。

strncat

函式原型:char* _strncat(char* dest, const char* src,size_t n)

函式功能:把src所指字串的前n個字元新增到dest結尾處(覆蓋dest結尾處的'\0')並新增'\0'。

函式說明:保證src和dest所指記憶體區域不能重疊且dest必須有足夠的空間來容納src的字串。

函式實現

char* _strncat(char* dest, const

char* src, size_t n)

*tmp = '\0';//對於src長度大於n時,加上字串結尾

return dest;

}

strlen

函式原型:size_t _strlen(const char* str)

函式功能:計算字串str的長度。

函式說明:返回s的長度,不包括結束符null。

函式實現

//常規寫法

size_t _strlen

(const

char* str)

//遞迴寫法,不借助變數(面試題要求)

size_t _strlen_r

(const

char* str)

strcmp

函式原型:int _strcmp(const char* dest, const char* src)

函式功能:比較字串dest和src。

函式說明

當dest< src時,返回值 < 0

當dest= src時,返回值 = 0

當dest> src時,返回值 > 0

函式實現

int _strcmp(const

char* dest, const

char* src)

return (*dest - *src);

}

strncmp

函式原型:int _strncmp(const char* dest, const char* src, size_t n)

函式功能:比較字串dest和src的前n個字元。

函式說明: 如果前n位元組完全相等,返回值就為0;在前n位元組比較過程中,如果出現dest[n]與src[n]不等,則返回(dest[n]-src[n])。

函式實現

int _strncmp(const

char* dest, const

char* src, size_t n)

return (*dest - *src);

}

strstr

函式原型

函式功能:找出src字串在dest字串中第一次出現的位置(不包括src的'\0')

函式說明:返回該位置的指標,如找不到,返回空指標。

函式實現

char* _strstr(const

char* dest, const

char* src)

if (!(*srctmp))

return (char*)desttmp;

dest++;

}return

nullptr;

}

如有錯誤請指出,謝謝。

C C 對常見字串庫函式的實現

在c中的string.h標頭檔案中存在很多對字串進行操作的函式,利用這些函式可以方便的對字串進行操作。下面將對常見的字串函式進行解釋和實現。strcpy 函式原型 char strcpy char dest,char src 函式功能 將str所指由nullptr的字串複製到dst所指的陣列中,並返...

C C 對常見字串庫函式的實現

在c中的string.h標頭檔案中存在很多對字串進行操作的函式,利用這些函式可以方便的對字串進行操作。下面將對常見的字串函式進行解釋和實現。函式原型 char strcpy char dest,char src 函式功能 將str所指由nullptr的字串複製到dst所指的陣列中,並返回dest的指...

常見字串函式實現

1,strlen 計數法 unsigned int my strlen1 const char str return count 遞迴法 unsigned int my strlen2 const char str 首尾相減法 unsigned int my strlen3 const char s...