C語言 字串庫函式實現

2021-09-17 23:20:44 字數 2674 閱讀 8110

對於字串,編譯器為我們提供了一些庫函式以方便我們對其的操作,下面我們將對一些常用的字串庫函式進行簡單介紹,並自我實現這些方法。

<1>strcopy()

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

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

自我實現:

char *mystrcopy(char *dest,const char *src)                //字串拷貝

return p;

}

<2>strlen()

函式原型:unsigned int strlen(char *s);

功能:計算給定字串的(unsigned int型)長度,不包括'\0'在內。

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

自我實現:

unsigned int mystrlen(const char *str)                   //字串長度

return count;

}

<3>strcat()

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

功能:把src所指向的字串(包括「\0」)複製到dest所指向的字串後面(刪除*dest原來末尾的「\0」)。要保證*dest足夠長,以容納被復               制進來的*src。*src中原有的字元不變。返回指向dest的指標。

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

自我實現:

char *mystrcat(char *dest,const char *src,int len)        //字串連線

char *p = dest;

const char *q = src;

while(*p != '\0')

while(*q != '\0')

*p = '\0';

return dest;

}

<4>strcmp()

函式原型:int strcmp(const char *s1,const char *s2);

功能:比較兩個字串的大小。

說明:當s1當s1==s2時,返回值= 0;

當s1>s2時,返回正數。

即:兩個字串自左向右逐個字元相比(按ascii值大小相比較),直到出現不同的字元或遇'\0'為止。

自我實現:

int mystrcmp(const char *dest, const char *src)            //字串比較

return *dest - *src;

}

<5>strncopy()

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

功能:把src指向的字串的前size_t n個字元(不包括\0,\0得自己手動加在*dest被複製之後)複製到dest指向的字串中。如果要複製的*src的部分有\0,就把\0複製進去,之後就提前結束,即使沒複製到第size_t n個字元也是。返回指向*dest的指標。

自我實現:

char *mystrncpy(char *dest,const char *src,size_t count)     //count+1個字元賦值

return dest;

}

<6>strncmp()

函式原型:int strncmp ( const char * str1, const char * str2, size_t num );

功能:比較str1所指向的字串和str2所指向字串前n個位元組的大小。

自我實現:

int mystrncmp(const char *string1,const char *string2,size_t count )    //比較前count個字元    

if(*string1 - *string2 <0)

string1++;

string2++;

count--;

} return 0; //表示*string1 = *string2

}

<7>strncat()

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

功能:把src所指字串的前n個字元新增到dest所指字串的結尾處,並覆蓋dest所指字串結尾的'\0',從而實現字串的連線。

說明:src和dest所指記憶體區域不可以重疊,並且dest必須有足夠的空間來容納src的字串。

自我實現:

char *my_strncat(char *dest,const char *src,size_t count )       //將src前count連線到dest

*p = '\0';

return dest;

}

C語言字串庫函式的實現

c語言字串庫函式的實現也是筆試題常考的題目,以下 沒有嚴格測試,只是簡單的實現 字串長度 int strlen const char str 字串拷貝 char strcpy char to,const char from strncpy 如果from指向的字元個數少於count,則用 0 補齊 c...

C語言字串庫函式的實現

c語言字串庫函式的實現也是筆試題常考的題目,以下 沒有嚴格測試,只是簡單的實現 字串長度 int strlen const char str 字串拷貝 char strcpy char to,const char from strncpy 如果from指向的字元個數少於count,則用 0 補齊 c...

C語言字串庫函式的實現

1.strlen 字串的長度 size t strlen const char str size t strlenbyrecursion const char str size t cdecl strlen const char str 函式庫裡面實現的 2.strcpy 字串拷貝 char str...