本文介紹三種方法:ide
1.循環計數法,(設置一個計數器)。函數
2.遞歸法,(函數調用自身進行計算)測試
3.指針-指針法,(庫函數使用的是此方法)指針
如今列入程序:遞歸
方法1:it
/* 計數法 */ int my_strlen(char *p) { int number = 0; while (*p) { number++; p++; } return number; }
方法2:class
/* 遞歸法 */ 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,計算結果正確!方法
若是哪位大神發現程序還有待改進的地方,歡迎批評指正!