一. strcpy
- 功能:拷备字符串函数,将src所指向的字符串拷备到dest所指向的内存空间中。复制包含’\0’。st
- 原型:char *strcpy(char *destin, char *source);
- 函数内部实现:
char * strcpy(char *dst,const char *src) {
assert(dst != NULL && src != NULL);
char *ret = dst;
while ((*dst++=*src++)!='\0');
return ret;
}
二. strncpy
- 函数功能:拷备字符串函数,将src字符串的前n个字符拷备到dest所指向的内存空间中
- 函数原型:char *strncpy(char *dest, const char *src, size_t n);
- 函数实现:
char* my_strncpy(char *dest, const char *src, size_t n){
char* ret = dest;
assert(dest != NULL && src != NULL);
while (*src && n){
*ret++ = *src++;
n--;
}
return dest;
}
三. strlen
- 函数功能:求字符串长度函数,用于求C风格的字符串str的长度。
- 函数说明:区别于sizeof,strlen遇到第一个’\0’就结束,返回的字符串长度不包括’\0’。
- 原型:size_t strlen(const char *s);
- 内部实现:
size_t my_strlen(char* s){
size_t count = 0;
while (*s != '\0'){
count++;
*s++;
}
return count;
}
四. strcat
- 函数功能:字符串追加函数,将src所指向的字符串追加到dest所指向的字符串的末尾
- 函数说明:dest和src所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串
- 函数原型:char *strcat(char *dest, const char *src);
- 函数实现:
char* my_strcat(char *dest, const char *src){
char* ret = dest;
assert(dest != NULL && src != NULL);
while (*ret ){
*ret++;
}//*ret='\0'
while (*src ){
*ret++ = *src++;
}//*src='\0'
*ret = '\0';
return dest;
}
五. strncat
- 函数功能:字符串追加函数,将src所指向的字符串的前n个字符追加到dest所指向的字符串的末尾
- 函数原型:char *strncat(char *dest, const char *src, size_t n);
- 函数实现:
char* my_strncat(char *dest, const char *src,int n){
char* ret = dest;
assert(dest != NULL && src != NULL);
while (*ret){
*ret++;
}//*ret='\0'
while (*src && n){
*ret++ = *src++;
n--;
}//*src='\0'
*ret = '\0';
return dest;
}