strlen
size_t strlen(const char* str)
1.字符串是’\0’作为结束标志,strlen函数返回的是在字符串中’\0’前面出现字符的个数
2. 参数指向的字符串必须要以’\0’结束
3. 注意函数的返回值是size_t,是无符号的(所以两个字符串长度相加减永远是正数)
计数器方法模拟实现strlen函数
#include<stdio.h>
#include<assert.h>
int my_strlen(const char* str) {
int count = 0;
assert(str != NULL);
while ('\0' != *str) //whlie(*str)
{
count += 1;
str++;
}
return count;
}
int main() {
int len = my_strlen("abcdef");
printf("%d\n", len);
getchar();
return 0;
}
递归方法(不创建临时变量)实现strlen函数
int my_strlen(const char* str) {
if (*str != '\0') {
return 1 + my_strlen(str + 1);
}
else {
return 0;
}
}
int main() {
int len = my_strlen("abcdef");
printf("%d\n", len);
getchar();
return 0;
}
注意上面实现strlen函数的函数返回值为int类型,所以进行字符串长度比较的时候可进行加减操作。