C语言-字符串相关库函数用法+模拟实现

164 阅读2分钟

在C语言中,字符串是字符数组的一种特殊形式,以空字符'\0'结束。C语言提供了一系列的库函数来处理字符串,这些函数在<string.h>头文件中定义。以下是一些常用的字符串相关库函数及其用法和模拟实现:

  1. strlen():此函数返回给定字符串的长度。

    用法:size_t strlen(const char *str);

    模拟实现:

    size_t my_strlen(const char *str) {
        const char *s = str;
        while (*s)
            ++s;
        return s - str;
    }
    ​
    
  2. strcpy():此函数将源字符串复制到目标数组。

    用法:char* strcpy(char* destination, const char* source);

    模拟实现:

     char* my_strcpy(char* destination, const char* source) {
         assert(destination != NULL && source != NULL);
         char *ret = destination;
         while ((*destination++ = *source++) != '\0');
         return ret; 
     }
    ​
    
  3. strcat():此功能将源串附加到目标串后面。

    用法: char * strcat (char *, const *) ;

    模拟实现:

    //模仿 strcat 函数 
    void my_strcat (char *,const *) { 
        assert((src!=NULL)&&(dst!=NULL)); //断言源地址和目标地址都不为空  
        while(*dst!='\0') { //找到dst 的结束位置  
            dst++;  
        }   
        while((*dst++=*src++)!='\0'); //复制  
    } 
    ​
    
  4. strcmp():此函数比较两个字符串。

    用法:int strcmp(const char *str1, const char *str2);

    模拟实现:

     int my_strcmp(const char *str1, const char *str2) {
         while (*str1 && (*str1 == *str2)) {
             str1++;
             str2++;
         }
         return *(unsigned char *) str1 - *(unsigned char *) str2;
     }
    ​
    
  5. strstr():此函数在一个字符串中查找子串。

    用法: char* strstr(const* haystack, const* needle);

    模拟实现:

    //模仿 strstr 函数 
    void my_strcat (char *,const *) { 
        assert((src!=NULL)&&(dst!=NULL)); //断言源地址和目标地址都不为空  
        while(*dst!='\0') { //找到dst 的结束位置  
            dst++;  
        }   
        while((*dst++=*src++)!='\0'); //复制  
    } 
    ​
    

以上就是C语言中常见的一些字符串相关的库函数及其模拟实现。这些库函数为我们提供了方便,但是理解其内部工作原理也同样重要,这样我们才能更好地使用它们,并在需要时自己编写类似的功能。

蓝易云-五网CN2服务器【点我购买】

蓝易云采用KVM高性能架构,稳定可靠,安全无忧!
蓝易云服务器真实CN2回国线路,不伪造,只做高质量海外服务器。


海外免备案云服务器链接:www.tsyvps.com

蓝易云香港五网CN2 GIA/GT精品网络服务器。拒绝绕路,拒绝不稳定。