本文将解析常见字符串函数的用法,并通过模拟实现来加深对于它们的理解,以便更好、更灵活的使用它们。
strlen函数
size_t strlen( const char* str)
strlen函数的用法是返回在字符串中‘ '前面出现的字符个数(不包含 ),看函数格式可以知道,它返回的是size_t,是无符号的。通过这个函数可以轻松的知道字符串里的字符个数,下面来模拟实现它。
方法1 计数器法
既然它统计的是 前的字符个数,那我们可以从头开始遍历,用一个count变量来保存遍历过的字符,然后返回count就是它的总字符个数了,注意这里是不包含 的。
方法2 指针法
通过指针进行计算,我们指针相减的性质(得出两个指针之间的元素个数)来进行,首先需要一个指针dest遍历到字符串 的位置,然后再定义一个指针src指向字符串的首元素地址,两者相减,就能得出该字符串的元素个数。
方法3 递归法
通过递归也能统计它们的字符个数,首先我们要明白,遍历整个字符串时,当它遇到 就会停止,这就是递归函数的出口,这里str是字符串名,指向的是字符串的首地址,那么每次递归时,我们都让它加1到达下一个字符的位置,然后在加上前一个字符,如此递归下去,最后返回的就是整个字符串的字符个数(不包含 )。
代码实现
代码语言:javascript复制
模拟实现strlen
方法1 计数器
int my_strlen(char * str)
{
int count = 0;
int i = 0;
while (str[i])
{
count ;
i ;
}
return count;
}
int main()
{
char str[] = "abcdefg";
int sz = my_strlen(str);
printf("%d", sz);
return 0;
}
//方法2 指针法
int my_strlen(char* str)
{
char* dest = str;
while (*dest != '