首页 > 其他分享 >c语言例题,计算字符串长度,递归思想

c语言例题,计算字符串长度,递归思想

时间:2024-04-01 09:58:17浏览次数:18  
标签:字符 strlen2 函数 递归 字符串 例题 my 指针

c语言中,计算字符串长度算是一个比较经典的题了,而今天我们运用两种不同的求解方法来写出不同的程序来实现计算字符串的功能。

主函数

 先看到主函数,主函数中设置了一串7个字符的字符串,而后面接下来定义了两个变量len1和len2,同时分别打印len1和len2,当然,打印的这两个变量其实就是上面我所说的两种不同的方法打印的字符串长度,我们也知道若是程序正确,那输出的结果是7;最终,我们得把焦点聚集到my_strlen1和my_strlen2这两个函数中。

方法1

在my_strlen1函数中,首先将主函数中已经定义好的arr数组传参到函数中,然后建立一个变量count,接下来运用while语句和指针的方式进行字符判断,这里的核心是判断指针解引用之后的字符是不是\0,而我们也知道\0是一个字符的结束标志,所以在没有发现\0时,将指针的位置++(因为我们是将一个数组名传过去,所以指针刚开始指向的字符是数组中的首字符a),同时将计数的count变量也++,直到我们的指针解引用到\0,循环结束,返回return count。

方法2(递归)

在my_strlen2函数中,同样是实现了计数字符串长度的功能,但是用的却是完全不同的方法,而这种方法的书写核心思想是运用了递归思想,可以发现在递归思想中,函数里没有设置变量,同时也没运用循环语句,只有一个分支语句if便能实现计算字符串长度的功能。同样在if语句中,我们进行对指针解引用的判断,看解引用后的字符是不是\0,若不是\0返回1+my_strlen2(它本身),也就是说循环调用my_strlen2这个函数,来实现计算字符串的功能。

标签:字符,strlen2,函数,递归,字符串,例题,my,指针
From: https://blog.csdn.net/PrayerRain/article/details/137219457

相关文章

  • 如何实现Python中的字符串切片?
    如何实现Python中的字符串切片?在Python中,字符串切片是一种强大的功能,它允许我们访问和操作字符串中的特定部分。字符串切片的基本语法是[start:stop:step],其中start是切片的起始索引,stop是切片的结束索引(但不包括该索引处的字符),step是切片时每次跳过的字符数。如果省略某个参......
  • 11天【代码随想录算法训练营34期】 第五章 栈与队列part02(● 20. 有效的括号 ● 1047
    20.有效的括号classSolution:defisValid(self,s:str)->bool:stk=[]upper=["(","{","["]lower=[")","}","]"]dictionary={")":"(&qu......
  • 【C语言基础篇】字符串处理函数(四)strcmp的介绍及模拟实现
    目录 一、strcmp函数介绍函数原型函数参数功能描述返回值使用示例二、strcmp函数模拟实现思路代码测试         个人主页:    倔强的石头的博客        系列专栏 :C语言指南         C语言刷题系列  系列文章【C语言基础篇......
  • 字符串算法
    Manacher-------快速查找回文串这个算法其实是基于暴力查找回文串的优化。 while(i-k>=0&&i+k<n&&s[i-k]==s[i+k]){k++;}这就是暴力查找以s[i]为中心点的奇数长的回文串,偶数也一样就是改一下下角标就可以。这个算法的优化其实就是以s[i]为中点的回文串......
  • 【每周例题】力扣 C++ 二叉树的最小深度
    二叉树的最小深度题目二叉树的最小深度题目分析1.首先我们可以处理最小深度为0与最小深度为1的情况:最小深度为0:头结点为空;root==nullptr最小深度为1:root->left==nullptr&&root->right==nullptr2.接下来分为左右子树处理,我们可以用递归来计算最小深度3.最后比较左......
  • 【每周例题】力扣 C++ 搜索插入位置
    搜索插入位置题目搜索插入位置 题目分析1.第一个想法肯定是暴力遍历,找到了就输出下标,找不到就对比前后两个数字,寻找合适的位置插入。2.需要注意一点,我们需要再一开始就对比target与数组最后一个数的大小,如果比数组最后一个数大,直接返回数组长度3.第二个想法就是缩短寻找的......
  • PTA R7-5 找最大的字符串
    R7-5找最大的字符串分数10入门全屏浏览切换布局作者 王秀单位 福州大学输入5个字符串,输出其中最大的字符串。输出格式:printf("Maxis:%s\n",);输入输出示例:括号内为说明,无需输入输出输入样例:peachpearmelonorangeberry输出样例:Maxis:pear #i......
  • web前端之页面逐渐呈现代码功能、对象数据如何获取下一个值、创建元素并添加id与类名
    MENU前言style(全部代码)JavaScript(核心代码)html(基本代码)前言1、效果演示以视频为准,暂未录视频(敬请期待);2、私信或微信可获取完整代码(WX:MJ682517)style(全部代码)*{margin:0;padding:0;box-sizing:border-box;}::-webkit-scrol......
  • 「PHP系列」PHP 常量/字符串、类型比较
    文章目录一、PHP常量1.定义常量使用`define()`函数使用`const`关键字(在类内部)2.访问常量3.常量的特点4.注意事项5.示例二、PHP字符串1.定义字符串使用单引号使用双引号使用heredoc和nowdoc2.字符串操作字符串连接字符串长度字符串替换字符串查找字符串......
  • 代码随想录算法训练营第9天 | 字符串(待补充)
    28.实现strStr()KMP算法KMP算法:字符串匹配问题,提前构建next表next表(前缀表):利用成功匹配的经验,长度为t的前后缀相匹配,next[j]=tnext表再改进:利用失败匹配的经验,如果P[j]和P[t]相等,仍然是徒劳?......