C语言 字符串相关函数重写(strlen\strcpy\strcat\strcmp)

本文详细介绍了如何使用strlen, strcpy, strcat和strcmp标准库函数,并提供了自定义版本的str_len, str_cpy, str_cat和str_cmp函数实现。通过实际代码演示,探讨了字符串处理的基础技巧和assert断言的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

运用strlen\strcpy\strcat\strcmp时需添加#include <string.h>头文件

size_t strlen(const char *s);        

功能:计算字符串长度,不包括'\0'
char *strcpy(char *dest, const char *src);        

功能:把src拷贝到dest
char *strcat(char *dest, const char *src);        

功能:把字符串src追加到dest的后面 
int strcmp(const char *s1, const char *s2);
         
功能:比较两个字符串大小,按字典序(在前为小)比较,出结果立即返回,后面不再比较
        s1 > s2   正数    s1 < s2   负数    s1 == s2   0

重写strlen函数   (命名为str_len)

size_t str_len(const char *s)
{
    assert(NULL != s);
    const char* p = s;
    while(*p); p++;
    return p-s;
} 

重写strcpy函数   (命名为str_cpy)

char *str_cpy(char *dest, const char *src)
{
    assert(NULL != dest && NULL != src);
    char* p = dest;
    while(*p++ = *src++);
    return dest;
}

重写strcat函数   (命名为str_cat)

char *str_cat(char *dest, const char *src)
{
    assert(NULL != dest && NULL != src);
    char* p = dest;
    while(*p) p++;
    while(*p++ = *src++);
    return dest;
}

重写strcmp函数   (命名为str_cmp)

int str_cmp(const char *s1, const char *s2)
{
    assert(NULL != s1 && NULL != s2);
    while(*s1 && *s1 == *s2)
    {
        s1++;
        s2++;
    }
    return *s1-*s2;
}

以上函数测试代码

#include <stdio.h>
#include <string.h>
#include <assert.h>

int main(int argc,cont char* argv[])
{
    char str[256]
    printf("str_len:%d\n",str_len(str));
    printf("str_cpy:%s\n",str_cpy(str,"abc"));
    printf("str_cat:%s\n",str_cat(str,"def"));
    printf("str_cmp:%d\n",str_cmp("abc","aaa"));
}

assert:运用assert时需添加#include <assert.h>头文件

用于检测错误,表达式结果为0,则为假,并打印错误信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LJIEIJL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值