C语言 模拟实现strlen函数 骑猪看日落 2024-04-06 11:39 15阅读 0赞 ## strlen 函数 ## strlen函数是求字符串的长度,具体用法观看一下代码讲解。 char arr[4]="abc"; int len=strlen(arr); printf("%d",ret); //打印的 3 //因为在字符串的最后面有有一个字符'\0'; //strlen函数遇到字符'\0'时会停止 ## 模拟书写strlen函数,且创建临时变量 ## **思路:** 指针放在字符串的首地址处,一个一个字符的查找,每找到一个非’\\0’的字符,就进行一次计数,直到找打’\\0’; #include<stdio.h> int my_strlen(char* str) { //注意这里的时char* str,传入的是数组的首地址 int count=0; while(1) { if(*str='\0') { count++; //每找的一个字符不是'\0',count就++一次 str++; //每找完一个字符,指针向有移动,查看下一个字符。 } else { return count; } } } int main() { char ch[]="abc"; int ret=my_strlen(ch); printf("%d",ret); return 0; } ![在这里插入图片描述][60d3df000ace4072aaf84afc96fca0ac.jpeg_pic_center] ## 模拟书写strlen函数,且不创建临时变量 ## **递归思想:** my_strlen("abc"); 1+my_strlen("bc"); 1+1+my_strlen("c"); 1+1+1+my_strlen("\0"); 1+1+1+0 #include<stdio.h> int my_strlen() { if(*str!='\0') { return 1+my_strlen(1+str); } else { return 0; } } int main() { char ch[]="abc"; int ret=my_strlen(ch); printf("%d",ret); return 0; } ![在这里插入图片描述][b08ee5302f8649609d406c6ef3dc813f.jpeg_pic_center] 学的不是技术,更是梦想。 [60d3df000ace4072aaf84afc96fca0ac.jpeg_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/06/b11a062efe0f425a8aded012cc9aa61b.jpeg [b08ee5302f8649609d406c6ef3dc813f.jpeg_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/06/dff4f96e637d4e14ad3cb87c2cb6b7c6.jpeg
还没有评论,来说两句吧...