strlen
size_t strlen( const char* string )
功能:计算字符串中\0之前的字符的个数,不包括\0。
回值:字符串中字符的个数。
参数指向的字符串必须要以’ \0 '结束
strlen函数返回的是在字符串中’ \0 ‘前面出现的字符个数(不包含’ \0 ')
函数的返回值为size_t,是无符号整型(unsigned int)
模拟实现#include<stdio.h> #include<assert.h> //count计数法 unsigned int my_strlen(const char* string) { //断言,保证指针的有效性,防止野指针 assert(string!=NULL); unsigned int count = 0; while(*string) { count++; string++; } return count; } //递归法 unsigned int my_strlen(const char* string) { assert(string!=NULL); if (*string) return 1 + my_strlen(string + 1); else return 0; } //指针-指针法 unsigned int my_strlen(const char* string) { assert(string!=NULL); //const修饰的安全的指针交给一个不安全的char*的指针是要强制类型转换 char* tmp = (char*)string; while (*string) { string++; } return string - tmp; } int main() { char arr[] = "abcdef"; printf("%d\n", my_strlen(arr)); return 0; }