本文介绍三种方法:
1.循环计数法,(设置一个计数器)。
2.递归法,(函数调用自身进行计算)
3.指针-指针法,(库函数使用的是此方法)
现在列入程序:
方法1:
/* 计数法 */ int my_strlen(char *p) { int number = 0; while (*p) { number++; p++; } return number; }
方法2:
/* 递归法 */ int my_strlen(char *str1) { if (*str1 != ‘\0‘) { str1++; return 1 + my_strlen(str1); } else return 0; }
方法3:
/* 指针相减法 */ int my_strlen(char *p) { char *pstart = p; while (*p) p++; return p - pstart; }
现在给出主函数进行调用以及测试:
int main() { char *str = "asdfg"; int len = my_strlen(str); printf("%d\n",len); system("pause"); return 0; }
经过验证,结果均为5,计算结果正确!
如果哪位大神发现程序还有待改进的地方,欢迎批评指正!
时间: 2024-10-25 14:31:30