字符串函数笔记,指针传参封装字符串函数,strcmp,strcpy等。

size_t Strlen(const char * s)//统计有效长度
{
    if('\0' == *s)
    {
        return 0;
    }
    else
    {
        return Strlen(s+1) + 1;
    }
}
char *Strcpy(char *dest,const char *src)//字符串复制
{
    char *ret = dest;
    while(*src)
    {
        *dest++ = *src++;
    }
    *dest = '\0';
    return ret;
}
char * Strncp(char *dest,const char * src,size_t n)//复制前n个字符
{
    char * ret = dest;
    while(n && *src)
    {
        *dest++ = *src++;
        --n;
    }
    *dest = '\0';
    return ret;
}
char * Strcat(char *dest,const char *src)//字符串拼接
{
    char *ret = dest;
    while(*dest)
    {
        ++dest;
    }
    while(*src)
    {
        *dest++ = *src++;
    }
    *dest = '\0';
    return ret;
}
//将src前n个字符拼接到dest上
char *Strncat(char *dest,const char * src,size_t n)
{
    char * ret = dest;
    while(*dest)
    {
        ++dest;
    }
    while(n && *src)
    {
        *dest++ = *src++;
        --n;
    }
    *dest = '\0';
    return ret;
}
//字符串比较
int Strcmp(const char * s1,const char * s2)
{
    while(*s1 == *s2 && *s1 &&*s2)
    {
        ++s1;
        ++s2;
    }
    return *s1 - *s2;
}
//比较字符串前n个字符
#include <assert.h>
int Strncmp(const char * s1,const char *s2,size_t n)
{
    assert(n != 0);//断言
    while(--n && *s1 == *s2 && *s1 && *s2)
    {
        ++s1;
        ++s2;
    }
    return *s1 - *s2;
}
//寻找sub在dest中首次出现的位置
#include <string.h>
int Strstr(const char * dest,const char *sub)
{
    int i;
    for(i = 0;i < strlen(dest);++i)
    {
        if(0 == strncmp(dest + i,sub,strlen(sub)))
        {
            return i;
        }
    }
    return -1;
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

strtok函数(分割字符串)

**char *strtok(char s, const char delim);
在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回被分割出片段的指针。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值