首页 > 其他分享 >递归实现字符串长度的计算

递归实现字符串长度的计算

时间:2024-04-08 18:58:06浏览次数:29  
标签:arr return 递归 int my 字符串 长度 strlen

        我们可以模拟实现strlen函数。传入指针arr时,进入函数,我们要判断该指针是不是空函数,防止空指针的出现,用到了断言assert。当一个数组元素没有走到‘ \0’ 时,我们就要利用递归1+my_strlen(arr+1),arr+1是走向下一个数组元素。并且递归的使用一定要有条件的设置,否则会进入死循环。

#include<stdio.h>
#include<assert.h>
int my_strlen(char*arr)
{
    assert(arr);
    if (*arr == 0)
        return 0;
    else
        return  1 + my_strlen(arr+1);
}
int main()
{    
    char arr[] = "abcdefg";
    int count = my_strlen(arr);
    printf("%d", count);

    return 0;
}

标签:arr,return,递归,int,my,字符串,长度,strlen
From: https://blog.csdn.net/weixin_73863912/article/details/137433043

相关文章

  • Oracle 递归遍历
    1、场景递归到第几层,例如递归到第2层   selectlevel,--层级wdj.*fromwip_discrete_jobs_vwdjwhere1=1startwithwdj.wip_entity_name='08363790'--递归开始connectbywdj.attribute3=priorwdj.wip_entity_nameandlevel<3; 2、一行数据出现两......
  • 递归寻找节点
    publicclassFileNode:PropertyChangedBase{publicFileNode(){this.Files=newObservableCollection<FileNode>();this.IsFile=false;}privatestring_name=string.Empty;......
  • 字符串进阶-字符串函数
    字符串进阶-字符串函数应用c++提供了大量的字符串函数,供我们在解题时使用。一、常用函数介绍1-长度(有返回值)a.size()或a.length()2-查找(有返回值)a.find("hello")//返回子串hello在a中第一次出现时开头字母h的下标a.find('h')//返回字符h在a中第一次出......
  • 字符串的扩展
    字符串的扩展字符的Unicode表示法ES6加强了对Unicode的支持,允许采用\uxxxx形式表示一个字符,其中xxxx表示字符的Unicode码点。但是,这种表示法只限于码点在\u0000~\uFFFF之间的字符。超出这个范围的字符,必须用两个双字节的形式表示"\uD842\uDFB7"//"......
  • 字符串的新增方法
    字符串的新增方法String.fromCodePoint()ES5提供String.fromCharCode()方法,用于从Unicode码点返回对应字符,但是这个方法不能识别码点大于0xFFFF的字符String.fromCharCode(0x20BB7)//"ஷ"String.fromCharCode()不能识别大于0xFFFF的码点,所以0x20BB7就发生了溢出,最高......
  • 基于C语言用递归思想实现斐波那契数列的函数设计
    用C语言并利用递归思想实现设计一个程序,完成斐波那契数列的函数设计,利用递归实现!/********************************************************************* filename: * author :RISE_AND_GRIND@163.com* date :2024/04/07* function:利用递归思想实现设计......
  • 二叉树的非递归遍历
    感谢b站up主优雅的代码:https://space.bilibili.com/95715842二叉树的非递归遍历非递归的先序遍历思想:利用栈先进后出的性质。将根节点入栈,(根节点出栈的同时先拉右子树入栈,之后拉左子树入栈;左子树出栈的同时先拉其右子树入栈);依次继续。voidpreOrder(TreeNode*root){......
  • 字符串哈希板子
    #include<iostream>#include<cstring>#defineMAX_SIZE100usingnamespacestd;classStringHash{public:intsize;char*array;char*array_forward;unsignedlonglong*pre_base;unsignedlonglong*hash_array;uns......
  • python学习--基础知识(字符串扩展)
    八、字符串扩展1、字符串的三种定义方式2、字符串的拼接3、字符串的格式化4、字符串格式化的精确度控制5、字符串格式化的快速方法6、字符串格式化--对表达式进行格式化......
  • python 字符串的操作
    #字符串拼接str1="Hello"str2="World"combined_str=str1+""+str2print(combined_str)#字符串重复str1="Python"repeated_str=str1*3print(repeated_str) #根据字符串索引取值str1="Hello"char=str1[1]#......