C语言常见字符串函数自实现

本文介绍了C语言中的几个关键字符串函数:strcmp用于比较字符串,strcpy用于复制字符串,strcat用于拼接字符串,以及strstr用于在字符串中查找子串。同时,文中给出了这些函数的自实现代码,帮助理解它们的工作原理。
摘要由CSDN通过智能技术生成

一、strcmp函数

strcmp() 函数是 C 语言中的字符串比较函数,用于比较两个字符串是否相等。该函数的原型如下:

其中,str1 和 str2 分别为需要进行比较的两个字符串,函数返回值为整型,如果两个字符串相同则返回 0,不同返回-1。

int strcmp(const char *str1, const char *str2);

自实现代码

int myStrcmp(const char *source,const char *dest){
    int ret;
    while(*source && *source==*dest){
            source++;
            dest++;
    }
    ret = *source-*dest;
    if(ret == 0){
        return 0;
    }else{
        return -1;
    }

}

二、strcpy函数

strcpy 函数可以用来将一个字符串复制到另一个字符串中。该函数的原型如下:

需要注意的是,第二个参数是一个指向常量的指针,因为我们不希望在复制源字符串时修改它。

void strcpy(char* dest, const char* src)

自实现代码

void myStrcpy(char* dest, const char* src) {
    while (*src != '\0') {
        *dest = *src;
        src++;
        dest++;
    }
    *dest = '\0';
}

三、strcat函数

strcat 函数可以实现将两个字符串拼接在一起。其函数原型为:

其中,dest 是要拼接到的目标字符串,src 是要拼接的源字符串。

实现思路:该函数首先将指针 p 指向 dest 字符串的末尾,然后将 src 字符串中的字符一个一个拷贝到 dest 字符串的末尾,直到遇到 '\0' 结束符。最后再在 dest 字符串的末尾添加一个 '\0' 结束符。最终将 dest 字符串返回。

char* strcat(char* dest, const char* src);

自实现代码

char* myStrcat(char* dest, const char* src)
{
    char* p = dest;
    while (*p != '\0') {
        p++;
    }
    while (*src != '\0') {
        *p = *src;
        p++;
        src++;
    }
    *p = '\0';
    return dest;
}

四、strstr函数

strstr 函数是 C 语言标准库中的一个函数,用于在一个字符串中查找另一个字符串第一次出现的位置。函数原型如下:

这个实现没有考虑性能优化,如果在处理长字符串时可能会比较慢。在实际使用中,可以考虑使用一些更高效的算法来实现 strstr 函数。

char *strstr(const char *haystack, const char *needle)

自实现代码

char *myStrstr(const char *dest, const char *src) {
    char *p = (char *) dest;
    size_t len = strlen(src);

    while (*p) {
        if (strncmp(p, src, len) == 0) {
            return p;
        }
        p++;
    }

    return NULL;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值