strlen()
strlen所作的僅僅是一個計數器的工作,它從內存的某個位置
(可以是字符串開頭,中間某個位置,甚至是某個不確定的內存區域)
開始掃描,直到碰到第一個字符串結束符'\0'為止,然后返回計數器值(長度不包含'\0')。
注:
為方便閱讀 頭文件和主函數都在文章開頭給與,后面只寫函數內容,方便讀者閱讀
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>int main()
{char arr[] = "asdfdsaf";printf("%d", my_strlen(arr));system("pause");return 0;
}
方法1:計數器法實現strlen()
int my_strlen(char *arr)
{int count = 0;while (*arr != 0){arr++;count++;}return count;}
方法2:遞歸法實現strlen()
int my_strlen(char *arr)
{if (*arr == 0){return 0;}else{return 1 + my_strlen(arr + 1);}
}
方法3:指針的減法實現strlen()
int my_strlen(char *arr)
{char * str1 = arr;while (*arr != 0)arr++;return arr - str1;
}