如何用C语言实现一个长尾函数来模拟strlen的功能?

2026-04-12 06:071阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计521个文字,预计阅读时间需要3分钟。

如何用C语言实现一个长尾函数来模拟strlen的功能?

一、基本定义:- `size_t`:用于表示大小的无符号整数类型。- `my_strlen`:函数,用于计算字符串的字符数。

二、作用:- 计算字符串的字符数。

三、注意:- 字符串已将`'\0'`作为结束标志,`strlen`函数返回的是在`'\0'`之前出现的字符数,不包括`'\0'`本身。

一、基本知识

定义:size_t my_strlen(const char* str)

作用:计算字符串的字符个数

注意:

1.字符串已经把'\0'作为结束标志,strlen函数返回的是在字符串'\0'前面出现的字符个数(不包括'\0')

2.参数指向的字符串必须要以'\0'结束

3.注意函数的返回值为size_t(unsigned int),是无符号的

4.strlen函数的模拟实现

二、函数应用

#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<string.h> int main() { char arr[] = "abc";//[a b c \0] int len =strlen(arr); printf("%d\n", len); }

运行结果

三、代码模拟实现

1.计数器方法

#include <stdio.h> size_t my_strlen(const char* str) { size_t count = 0; assert(str); while (*str != '\0') { count++; str++; } return count; } int main() { char arr[] = "abc"; size_t n = my_strlen(arr); printf("%u\n", n); return 0; }

运行结果:

2.递归的方法

#include <stdio.h> #include <string.h> int my_strlen(char* str) { if (*str != '\0') return 1 + my_strlen(str+1); else return 0; } int main() { char arr[] = "abc";//[a b c \0] int len = my_strlen(arr); printf("%d\n", len); return 0; }

运行结果:

3.指针-指针

#include<stdio.h> int my_strlen(char* arr) { char* end = arr; while (*end) { end++; } return (end - arr);//类型相同的(指针-指针)的绝对值等于元素的个数 } int main() { char arr[] = "abc";//[a b c \0] int len = my_strlen(arr); printf("%d\n", len); }

运行结果:



以上就是strlen函数的相关知识,通过函数的模拟实现可以让我们更深刻的认识strlen的用法。

欢迎指正~

如何用C语言实现一个长尾函数来模拟strlen的功能?

本文共计521个文字,预计阅读时间需要3分钟。

如何用C语言实现一个长尾函数来模拟strlen的功能?

一、基本定义:- `size_t`:用于表示大小的无符号整数类型。- `my_strlen`:函数,用于计算字符串的字符数。

二、作用:- 计算字符串的字符数。

三、注意:- 字符串已将`'\0'`作为结束标志,`strlen`函数返回的是在`'\0'`之前出现的字符数,不包括`'\0'`本身。

一、基本知识

定义:size_t my_strlen(const char* str)

作用:计算字符串的字符个数

注意:

1.字符串已经把'\0'作为结束标志,strlen函数返回的是在字符串'\0'前面出现的字符个数(不包括'\0')

2.参数指向的字符串必须要以'\0'结束

3.注意函数的返回值为size_t(unsigned int),是无符号的

4.strlen函数的模拟实现

二、函数应用

#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<string.h> int main() { char arr[] = "abc";//[a b c \0] int len =strlen(arr); printf("%d\n", len); }

运行结果

三、代码模拟实现

1.计数器方法

#include <stdio.h> size_t my_strlen(const char* str) { size_t count = 0; assert(str); while (*str != '\0') { count++; str++; } return count; } int main() { char arr[] = "abc"; size_t n = my_strlen(arr); printf("%u\n", n); return 0; }

运行结果:

2.递归的方法

#include <stdio.h> #include <string.h> int my_strlen(char* str) { if (*str != '\0') return 1 + my_strlen(str+1); else return 0; } int main() { char arr[] = "abc";//[a b c \0] int len = my_strlen(arr); printf("%d\n", len); return 0; }

运行结果:

3.指针-指针

#include<stdio.h> int my_strlen(char* arr) { char* end = arr; while (*end) { end++; } return (end - arr);//类型相同的(指针-指针)的绝对值等于元素的个数 } int main() { char arr[] = "abc";//[a b c \0] int len = my_strlen(arr); printf("%d\n", len); }

运行结果:



以上就是strlen函数的相关知识,通过函数的模拟实现可以让我们更深刻的认识strlen的用法。

欢迎指正~

如何用C语言实现一个长尾函数来模拟strlen的功能?