C語言字串庫函式的實現

2021-09-08 08:58:07 字數 2653 閱讀 4340

c語言字串庫函式的實現也是筆試題常考的題目,以下**沒有嚴格測試,只是簡單的實現:

//

字串長度

int strlen(const

char *str)

//字串拷貝

char *strcpy(char *to, const

char *from)//

strncpy(),如果from指向的字元個數少於count,則用'\0'補齊

char *strncpy(char *to, const

char *from

, size_t count)

else

}return

result; }//

memset():把指定記憶體區域的前count個位元組設定成字元c

void * memset(void* buffer, int

c, size_t count)

//查詢字串s中首次出現字元c的位置

char *strchr(char *str, int

c)

//字串連線

char *strcat(char *strdes, const

char *strsrc)

char *strncat(char *strdes, const

char *strsrc, unsigned int

count)

//查詢字串第一次出現的位置

char *strstr(const

char *strsrc, const

char *str)

return

null;

} //

將字串拷貝到新的位置

char *strdup_(char *strsrc)

return

null;

}

記憶體拷貝函式:

//

memcpy(), 拷貝不重疊的記憶體塊

void* memcpy(void* to, const

void* from

, size_t count)

return

result;}//

memmove(), 拷貝重疊或者是不重疊的記憶體塊

void* memmove(void* to, const

void* from

, size_t count)

}//to與from有重疊,從後向前move

else

}return

result;

}

字串比較函式:

//

字串比較

int strcmp(const

char *s, const

char *t)

return (*s - *t);

}

//字串比較(不區分大小寫比較,大寫字母會被對映為小寫字母)

int stricmp(const

char *dst, const

char *src)

else

break

; }

return(ch1 -ch2);

}int strncmp(const

char *s, const

char *t, unsigned int

count)

return(*s - *t);

}

c標準庫部分源**

char * __cdecl strcat (char * dst,const

char *src)

int __cdecl strcmp (const

char * src,const

char *dst)

size_t __cdecl strlen (

const

char *str)

char * __cdecl strncat (char * front,const

char *back,size_t count)

int __cdecl strncmp (const

char * first,const

char *last,size_t count)

return( *(unsigned char *)first - *(unsigned char *)last );

}

/*copy src to dest.

*/char * strcpy (char * dest,const

char*src)

while (c != '\0'

);

n = s -src;

(void) check_bounds_high (src +n);

(void) check_bounds_high (dest +n);

return

dest;

}

char * __cdecl strncpy (char * dest,const

char *source,size_t count)

C語言 字串庫函式實現

對於字串,編譯器為我們提供了一些庫函式以方便我們對其的操作,下面我們將對一些常用的字串庫函式進行簡單介紹,並自我實現這些方法。1 strcopy 函式原型 char strcpy char dest,const char src 說明 src和dest所指記憶體區域不可以重疊且dest必須有足夠的空...

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