C语言刷题(21)

模拟实现strlen

方式1:

//计数器方式
int my_strlen(const char * str)
{
    int count = 0;
    while(*str)
    {
        count++;
        str++;
    }
    return count;
}

方式2:

//不能创建临时变量计数器
int my_strlen(const char * str)
{
    if(*str == '\0')
        return 0;
    else
        return 1+my_strlen(str+1);
}

方式3:

//指针-指针的方式
int my_strlen(char *s)
{
   char *p = s;
   while(*p != ‘\0’ )
       p++;
   return p-s;
}

模拟实现strcpy

//1.参数顺序
//2.函数的功能,停止条件
//3.assert
//4.const修饰指针
//5.函数返回值
//6.题目出自《高质量C/C++编程》书籍最后的试题部分
char *my_strcpy(char *dest, const char*src)
{
    char *ret = dest;
    assert(dest != NULL);
    assert(src != NULL);
 
    while((*dest++ = *src++))
    {
        ;
    }
    return ret;
}

模拟实现strcmp

int my_strcmp (const char * src, const char * dst)
{
    int ret = 0 ;
    assert(src != NULL);
    assert(dest != NULL);
    while( ! (ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)
        ++src, ++dst;
    if ( ret < 0 )
        ret = -1 ;
    else if ( ret > 0 )
        ret = 1 ;
    return( ret );
}

模拟实现strcat

char *my_strcat(char *dest, const char*src)
{
    char *ret = dest;
    assert(dest != NULL);
    assert(src != NULL);
    while(*dest)
    {
        dest++;
    }
    while((*dest++ = *src++))
    {
        ;
    }
    return ret;
}

相关推荐

  1. C语言21

    2024-03-31 23:08:01       5 阅读
  2. C语言(18)

    2024-03-31 23:08:01       9 阅读
  3. oj-C语言

    2024-03-31 23:08:01       18 阅读

最近更新

  1. leetcode705-Design HashSet

    2024-03-31 23:08:01       5 阅读
  2. Unity发布webgl之后打开streamingAssets中的html文件

    2024-03-31 23:08:01       5 阅读
  3. vue3、vue2中nextTick源码解析

    2024-03-31 23:08:01       6 阅读
  4. 高级IO——React服务器简单实现

    2024-03-31 23:08:01       5 阅读
  5. 将图片数据转换为张量(Go并发处理)

    2024-03-31 23:08:01       4 阅读
  6. go第三方库go.uber.org介绍

    2024-03-31 23:08:01       6 阅读
  7. 前后端AES对称加密 前端TS 后端Go

    2024-03-31 23:08:01       7 阅读

热门阅读

  1. 算法刷题day37

    2024-03-31 23:08:01       4 阅读
  2. 优化代码分支

    2024-03-31 23:08:01       3 阅读
  3. c语言:把百分制转化为等级制度(switch语句)

    2024-03-31 23:08:01       6 阅读
  4. 搭建语音打电话机器人需要哪些技术和资源

    2024-03-31 23:08:01       3 阅读
  5. 座次问题(蓝桥杯)

    2024-03-31 23:08:01       4 阅读
  6. css页面搭建案例

    2024-03-31 23:08:01       3 阅读
  7. 输入 wo xiang he ni jao peng you.,倒着打。

    2024-03-31 23:08:01       4 阅读
  8. NC20128 不重复数字

    2024-03-31 23:08:01       3 阅读
  9. ES6:Map()与WeakMap()

    2024-03-31 23:08:01       3 阅读