模拟实现strlen

简介: 模拟实现strlen

直接上源码

//方法1
size_t my_strlen (const char * string)
{
    assert(string);
    size_t count = 0;
    while(*string++)
    {
        count++;
    }
    return count;
}
//方法2
size_t my_strlen(const char * string)
{
    assert(string);
    const char* tmp = string;
    while(*++string);
    return string - tmp;
}
//方法3 
size_t my_strlen(const char * string)
{
    assert(string);
    if(!(*string))
        return 0;
    else
    {
        return 1 + my_strlen(string+1);//注意此处不能用++因其有副作用
    }
}
相关文章
mmap实现共享内存
mmap实现共享内存
241 0
|
10月前
|
SQL 存储 关系型数据库
【SQL技术】不同数据库引擎 SQL 优化方案剖析
不同数据库系统(MySQL、PostgreSQL、Doris、Hive)的SQL优化策略。存储引擎特点、SQL执行流程及常见操作(如条件查询、排序、聚合函数)的优化方法。针对各数据库,索引使用、分区裁剪、谓词下推等技术,并提供了具体的SQL示例。通用的SQL调优技巧,如避免使用`COUNT(DISTINCT)`、减少小文件问题、慎重使用`SELECT *`等。通过合理选择和应用这些优化策略,可以显著提升数据库查询性能和系统稳定性。
473 9
|
UED
「Mac畅玩鸿蒙与硬件17」鸿蒙UI组件篇7 - Animation组件基础
在应用开发中,动画效果可以增强用户体验。鸿蒙框架提供了 translate、scale 和 rotate 等动画功能,允许对组件进行平移、缩放和旋转等操作。本篇将介绍 Animation 组件的基础知识和示例代码。
655 10
「Mac畅玩鸿蒙与硬件17」鸿蒙UI组件篇7 - Animation组件基础
|
JavaScript
vue 滑动拼图验证
vue 滑动拼图验证
260 1
vue 滑动拼图验证
|
SQL Java 数据库连接
Dao层和Mapper层
Dao层和Mapper层
1980 0
|
存储 JavaScript 前端开发
父子组件通信:有效地在Vue组件树中传递数据
【4月更文挑战第24天】Vue.js中的组件通信是实现可维护和可扩展代码的关键。遵循单向数据流原则,数据从父组件通过`props`传给子组件,子组件通过`$emit`触发事件响应。常用通信方式包括:1) `Props`和`Events`基础通信;2) `Provide / Inject`跨级通信;3) 使用Vuex管理复杂状态;4) 共享祖先组件或Vuex处理非父子组件通信;5) 少量使用`ref`和`$parent / $children`直接访问。选择合适的方式能优化应用性能和用户体验。
272 0
|
人工智能 文字识别 算法
垂直领域大模型——文档图像大模型的思考与探索
12月1日,2023中国图象图形学学会青年科学家会议在广州召开。超1400名研究人员齐聚一堂,进行学术交流与研讨,共同探索促进图象图形领域“产学研”交流合作。
|
开发工具 内存技术
oh my zsh 失效 与 nvm 安装
oh my zsh 失效 与 nvm 安装
363 0
|
存储 缓存 Linux
分支与循环语句1
分支与循环语句1
128 0
|
监控 数据可视化 前端开发
一个.NetCore前后端分离、模块化、插件式的通用框架
一个.NetCore前后端分离、模块化、插件式的通用框架
443 0