700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【c语言】模拟strlen函数求字符串长度的三种方法

【c语言】模拟strlen函数求字符串长度的三种方法

时间:2018-09-12 12:54:18

相关推荐

【c语言】模拟strlen函数求字符串长度的三种方法

1.借助中间变量(常规方法)

#include<stdio.h>int my_strlen(char* str)//接收了数组首元素的地址{int count = 0;while (*str != '\0'){count++;str++;//下一元素的地址}return count;}int main(){char arr[] = "haha";printf("%d\n", my_strlen(arr));return 0;}

因为strlen求的是\0之前的字符个数,那么就可以while循环,遇到\0之前都可以count++,所以只需利用指针即可

2.递归方法模拟

递归出口是遇到\0,否则递归就会一直进行下去

int my_strlen(char* str){if (*str != '\0'){return 1 + strlen(str + 1);//str+1指的是下一个字符的地址}else{return 0;}}int main(){char arr[] = "haha";printf("%d\n", my_strlen(arr));return 0;}

3.指针相减法

指针相减得到的是两个指针之间的元素个数(c语言语法所规定的)

所以只需要求数组的第一个字符地址和最后一个字符(‘\0’)的地址就可以求出元素个数

int my_strlen(char* str){char* start = str;//str是数组第一个字符的地址while (*str != '\0'){str++;//总共5个字符,str最终会指向\0}return str - start;}int main(){char arr[] = "haha";printf("%d\n", my_strlen(arr));return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。