C字符串相关函数

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

}

 

参考文章:

C 字符串相关函数

猜你喜欢

转载自blog.csdn.net/weixin_39731083/article/details/82696632