递归与非递归方式实现计算字符串长度!!

xiaoxiao2025-10-30  5

1.用递归方法求字符串长度

算法思想: 1.首先判断字符串首元素是否为"\0". 2.若不是的,则继续调用my_strlen函数继续判断下一位元素是否为"\0", 计数器进行累加。

#include<stdio.h> int my_strlen(char *p) { if(*p !='\0') //判断字符串首字符时候为"\0" { return 1+my_strlen(p+1); //进行递归计算 } else return 0; } int main() { char a[ ]="abcdefgh"; printf("%d\n",my_strlen(a)); return 0; }

2.用非递归方法求字符串长度

#include<stdio.h> int my_strlen(char *p) { int i=0; while(*p !='\0') { p++; i++; } return i; } int main() { int ret=0; char arr[ ]="abcdef"; ret=my_strlen(arr); printf("%d\n",ret); return 0; }

3.【总结】:

1.个人看来两种方法比较而言非递归的方式简单易懂。而递归的思想是值得学习的,通过不断调用同一个函数以达到求解的目的,感觉特别低调而且有内涵。 2.就两个程序来说都是通过指针的特点达到传参的目的最为重要,如果掌握了指针的用法在以后的编程学习中作用会特别的大,会大大减小工作量。

转载请注明原文地址: https://www.6miu.com/read-5038789.html

最新回复(0)