C语言编程 递归和非递归分别实现strlen
<1>非递归
基本思想:
依次读字符串的每一位,若不是\0则累加器++
源代码:
#include<stdio.h>#include<stdlib.h>int Mystrlen(char *str){ int i=0; while (*(str+i)!='\0') { i++; } return i;}int main(){ char *str = "absjcs"; int result; result=Mystrlen(str); printf("%d", result); system("pause"); return 0;}
<2>递归
思想为判断当前一位元素是否为\0,然后进行下一次判断
则递归次数就是字符串长度
源代码:
#include<stdio.h>#include<stdlib.h>int mystrlen(char *str){ if (*(str) != '\0') { return 1 + mystrlen(str+1);//当前元素不是\0则+1 } return 0;}int main(){ int result; char *str = "asfdgsdgs"; result = mystrlen(str); printf("%d", result); system("pause"); return 0;}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。