Strlen 函式的實現(C語言)
阿新 • • 發佈:2019-01-14
非遞迴:
核心思想:字元指標向後移動,未遇到‘\0’,則計數累加。
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include<stdlib.h> #include <string.h> int strlen(char* str) { int count = 0; while (*str != '\0') { count++; str++; } return count; } int main() { char* p = "abcdef"; int len = strlen(p); printf("%d\n", len); system("pause"); return 0; }
遞迴:
核心思想:
int strlen ( char * str )
出口:空串返回0;
遞推: 1 + strlen (str + 1)
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> int strlen(char* str) { if (*str == '\0') return 0; else return 1 + strlen(str + 1); } int main() { char* p = "abcdef"; int len = strlen(p); printf("%d\n", len); system("pause"); return 0; }