strlen三种不同的写法

2023-05-16

strlen用来表示字符串的长度,区别于用关键字sizeof 计算字节大小

strlen有三种写法

1️⃣采用常规的count计数法

int my_strlen(const char *str)
{
    char *p = (char*)str;
    int count = 0;
    while(*p != '\0')
    {
        count++;
        p++;
    }
    return count;
}

这种方法简单,初学者一眼就能看懂,推荐使用.

 

2️⃣采用递归思想实现strlen

int my_strlen2(char* str)
{
	if (*str == '\0')
		return 0;
	else
		return 1 + my_strlen2(str + 1);
}

代码极其简单,递归思想是很重要的.学会这个思路,很多问题就迎刃而解了,比如函数多次调用,实例扫雷...

3️⃣指针相减法

int my_strlen(const char *str)
{
    char *p = (char*)str;
    while(*p != '\0')
    {
        p++;
    }
    return p-str;
}

这种方法易懂,但要注意一点:(两个指针指向的必须是同一内存区域,则相减的结果就是两者之间相差的元素个数,否则无意义)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

strlen三种不同的写法 的相关文章

  • C语言实现strlen()函数

    方式一 xff1a span class token macro property span class token directive keyword define span CRT SECURE NO WARNINGS span spa
  • C语言的str函数、strlen的使用及指针实现

    strlen函数 strlen函数用于计算给定的字符串的长度 xff0c 当扫描到指针内存中的第一个字符串结束符 0 时 xff0c 返回计算的长度 xff08 不包含 0 xff09 函数原型 xff1a extern unsigned
  • 盘点strlen()、sizeof()、length()、size()的区别

    目录 序言 1 总览 2 用法 2 1 sizeof 2 2 strlen 3 length 和size 序言 项目中经常用到这些用于计算大小的函数 或运算符 xff0c 网上也有许多关于其间区别的文章介绍 xff0c 在此按自己的思路整理
  • 【string】获取字符串长度strlen

    span class token keyword char span str span class token punctuation span span class token punctuation span span class to
  • C语言中的sizeof和strlen的区别

    sizeof strelen 先说结论 xff0c 喜欢授之以渔的可以看后面结束 1 不同点 sizeof 是单目运算符 xff0c strlen 是函数 sizeof 返回是 字串 字符所在变量 xff0c 实际占用的内存大小 单位是字节
  • C语言:sizeof和strlen计算字符串大小

    大家清楚 sizeof 和 strlen 的区别吗 xff1f sizeof是运算符 xff0c 确定的是字符所占空间大小 xff0c 参数可以有数组 指针 类型 对象 函数等 strlen是C语言的标准库函数 xff0c 确定是字符串的大
  • PHP:strlen返回字符长度而不是字节长度[重复]

    这个问题在这里已经有答案了 我有一个 WordPress 网站 我创建了简单的页面模板 例如 然后我使用这个模板创建了一个页面 该页面显示俄语字符串 意思是 你好 的长度 我期望看到 12 因为由 6 个字符组成的 UTF 8 编码的俄语字
  • Php 西里尔字符串长度加倍其值

    你好 这是问题所在 当我到达 POST 拉丁字符串 strilen 时效果很好 但是当我到达西里尔字符串 strlen 时其值加倍 这里是代码 word POST word echo strlen word br input abc gt
  • 为什么 strlen 的 REPNE SCASB 实现可以工作?

    为什么这段代码有效 http www int80h org strlen 表示字符串地址必须位于EDI为 注册scasb工作 但这个汇编功能似乎并没有做到这一点 汇编代码为mystrlen global mystrlen mystrlen
  • Sizeof 与 Strlen

    include
  • 在g++编译器中使用strlen获取数组的长度

    有人可以解释为什么当我使用以下 g 编译器编译源代码时出现此错误 include
  • C 中的字符串比预期的要长

    这是我的代码 include
  • PHP 不使用 strlen() 的字符串长度

    刚刚浏览了最新版本的 PHP 编码标准 有一些东西引起了我的注意 编码标准 4 规定 在编写处理字符串的函数时 请务必记住 PHP 保存每个字符串的长度属性 并且不应该使用 strlen 计算它 我一直使用 strlen 也许只是晚了 但是
  • 为什么这个计算字符串长度的 C 程序会给出错误的输出?

    我写了这个程序 它接受string作为输入并返回它的长度 include
  • strlen 返回 size_t?

    In C 我的字符串长度函数返回一个size t value 为什么它不返回传统的整数 我注意到的另一件事是 当我尝试将此字符串与另一个字符串连接时 我在运行程序时收到了总线错误 上下文 我正在使用 gmp 库并将大数字转换为字符串 最终遇
  • 为什么将 strlen 重新实现为循环+减法?

    灵感来自这个问题 https stackoverflow com q 6842130 57428关于 SQLite3 中的以下代码 static int strlen30 const char z const char z2 z while
  • GCC中strlen()的实现在哪里?

    谁能指出我的定义strlen 在海湾合作委员会 我已经 grep 4 4 2 版本大约半个小时了 同时疯狂地谷歌搜索 我似乎找不到在哪里strlen 已实际实施 你应该在 glibc 中查找 而不是 GCC 它似乎是在strlen c 这是
  • strlen() 和 UTF-8 编码 [重复]

    这个问题在这里已经有答案了 假设UTF 8编码 PHP中的strlen 这个字符串的长度有可能是4吗 我只想了解 strlen 而不是其他函数 这是字符串 1 2 我在自己的电脑上测试过 验证了UTF 8编码 得到的答案是6 我在 strl
  • strlen()==0 和empty()之间有区别吗?

    我正在查看其他人编写的一些表单验证代码 我看到了这个 strlen 0 当测试表单变量是否为空时 我使用empty 功能 一种方法比另一种方法更好吗 它们在功能上等效吗 strlen是获取字符串中的字符数 同时empty用于测试变量是否为空
  • 如果存储字符串的 char 数组小于字符串,C++ 真正将字符串存储在哪里?

    我正在测试 C Premiere 书中有关 C 字符串的示例 const int size 9 char name1 size char name2 size C owboy 8 characters here cout lt lt How

随机推荐

  • 程序员加班到深夜,你经历过没?

    我看到了自己的影子啊 虽然自己非科班出身 xff0c 学历也不高吧 xff0c 但是自认为还是很努力的 xff0c 但是为什么现在的工资水平却跟应届生差不多呢 xff1f xff08 xff09 仔细想想 xff0c 自己毕业3年了 xff
  • 【C/C++学院】(16)QT版:幸运大抽奖

    程序效果 xff1a ifndef DIALOG H define DIALOG H include lt QDialog gt include lt QLabel gt include lt QPushButton gt include
  • 【Python基础】--Pickle/函数默认参数/函数的参数*args/Bytes<=>str/32-64bit/bytes对象

    Pickle gt gt gt import pickle gt gt gt my list 61 1 2 3 39 haha 39 39 and 39 39 or 39 gt gt gt pickle file 61 open 39 my
  • Windows平台python操作串口示例,可以加工下,改写成方便的测试软件

    在 windows中 xff0c 使用 Python 进行串口编程需要安装一个 Serial 模块 pyserial xff1a 下载地址 https pypi python org pypi pyserial下载完成后得到一个 pyser
  • 告别csdn一年了

    原本坚持了4年的学习 xff0c 整理笔记 xff0c 在csdn平台上进行发表 xff0c 记录 同朋友们互动 xff0c 探讨进行学习 xff0c 自己也在不断地成长 今天再次进入博客页面 xff0c 发现界面来了个大改版 xff0c
  • KVM虚拟机创建功能详细讲解

    KVM虚拟机创建功能详细讲解 一 KVM虚拟机创建的用户操作 对于用户或者管理员来说 xff0c 虚拟机的创建有着很多的方法 xff0c 例如 xff1a kvm自带命令行工 具 使用virsh命令来创建 使用具有图形界面的virt man
  • php视频课程

    php视频课程 xff1a 下载地址 xff1a http php itcast cn php video shtml 注 xff1a 此系列视频 xff0c 韩顺平主讲 1 php入门到精通教程 2 第二版mysql视频教程 进行中 3
  • 2014年计算机求职总结--面试篇

    又一年实习招聘陆续开始了 xff0c 这里分享一下我在2013年实习招聘和秋季招聘中的一些面试经历 xff0c 希望能对找工作的同学有所帮助 2013年面试过的公司有蘑菇街 网易游戏 阿里巴巴 腾讯 百度 大众点评 人人网 雅虎 xff08
  • 用位运算实现两个整数的加减乘除运算

    位运算的思想可以应用到很多地方 xff0c 这里简单的总结一下用位运算来实现整数的四则运算 1 整数加法 int Add int a int b for int i 61 1 i i lt lt 61 1 if b amp i for in
  • 深入理解C/C++数组和指针

    版权所有 xff0c 转载请注明出处 xff0c 谢谢 xff01 http blog csdn net walkinginthewind article details 7044380 C语言中数组和指针是一种很特别的关系 xff0c 首
  • 轻松搞定面试中的链表题目

    版权所有 xff0c 转载请注明出处 xff0c 谢谢 xff01 http blog csdn net walkinginthewind article details 7393134 链表是最基本的数据结构 xff0c 面试官也常常用链
  • 轻松搞定面试中的二叉树题目

    版权所有 xff0c 转载请注明出处 xff0c 谢谢 xff01 http blog csdn net walkinginthewind article details 7518888 树是一种比较重要的数据结构 xff0c 尤其是二叉树
  • 动态内存分配(malloc/free)简单实现--隐式空闲链表

    本文使用隐式空闲链表实现简单的动态内存分配 动态内存分配器维护一个大块区域 xff0c 也就是堆 xff0c 处理动态的内存分配请求 分配器将堆视为一组不同大小的块的集合来维护 xff0c 每个块要么是已分配的 xff0c 要么是空闲的 实
  • 二分查找,你真的掌握了吗?

    版权所有 xff0c 转载请注明出处 xff0c 谢谢 xff01 http blog csdn net walkinginthewind article details 8937978 二分查找 xff0c 最基本的算法之一 xff0c
  • 【谷歌面试题】求数组中两个元素的最小距离

    一个数组 xff0c 含有重复元素 xff0c 给出两个数num1和num2 xff0c 求这两个数字在数组中出现的位置的最小距离 O n 时间复杂度 xff0c O 1 空间复杂度 int minDistance int A int si
  • 进程间通信

    原作者地址不详 摘 要 随着人们对应用程序的要求越来越高 xff0c 单进程应用在许多场合已不能满足人们的要求 编写多进程 多线程程序成为现代程序设计的一个重要特点 xff0c 在多进程程序设计中 xff0c 进程间的通信是不可避免的 Mi
  • 关于CPU C-States 省电模式,你需要知道的事情

    为了在CPU空闲的时候降低功耗 xff0c CPU可以被命令进入low power模式 每个CPU都有几种power模式 xff0c 这些模式被统称为C states或者C modes lower power模式最早在486DX4处理器上被
  • 一次由于设置错误,导致无法进入gnome的解决。

    我的系统是lenny 今天 xff0c 在 系统 gt 首选项 gt 音效 中修改了一处设置 xff0c 导致当前账号不能进入gnome 设置的图片如下 xff1a 我选中了 允许软件混音 和 播放系统声音 这两项 xff0c 结果当时系统
  • 分享一下工作以来我看过计算机书籍

    由于自工作依赖一直专注于linux 下的c c 43 43 编程工作 xff0c 所以 xff0c 我的书籍也大的都是这方 这边书尽管很经典 xff0c 但是我的能力实在有限 xff0c 只把数据结构的那点看了一下 xff0c 其他的 看的
  • strlen三种不同的写法

    strlen用来表示字符串的长度 区别于用关键字sizeof 计算字节大小 strlen有三种写法 1 采用常规的count计数法 int my strlen const char str char p 61 char str int co