C和指针之实现strlen函数

本文探讨了如何使用C语言实现strlen函数,从问题背景出发,详细展示了代码实现过程,并对结果进行了深入的分析和总结。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、问题

求字符串长度,实现strlen函数。
 
 
 
 
 

2、代码实现

#include <stdio.h>
#include <assert.h>

int get_strlen(char *str)
{
    assert(NULL != str);
    return *str == '\0' ? 0 : (1 + get_strlen(++str));
}

int main()
{
    char *str = "chenyu";
    char str1[10] = "chenyu";
    char str2[10] = "chengongyu";
    printf("str length is %d\n", get_strlen(str));
    printf("str1 length is %d\n", get_strlen(str1));
    printf("str2 length is %d\n", get_strlen(str2));
}

 
 
 

 


3、结果分析和总结


C语言中,字符串处理通常涉及到一些库函数,其中涉及到长度、拼接、比较大小写转换等操作。以下是几个常见的字符串函数及其功能: 1. `strlen()` 函数:用于计算给定字符串的长度,不包括结尾的空字符'\0'。它返回一个`size_t`类型的值。 ```c #include <string.h> size_t strlen(const char* str); ``` 例子: ```c size_t len = strlen("Hello, world!"); ``` 2. `strcat()` 函数:将一个字符串追加到另一个字符串的末尾。第一个参数是目标字符串,第二个参数是要附加的源字符串。 ```c #include <string.h> char* strcat(char* dest, const char* src); ``` 例如: ```c char result[50]; strcat(result, " is a test."); ``` 3. `strcmp()` 函数:用于比较两个字符串,如果相等则返回0,如果不等则返回负数或正数表示谁在字母表中靠前。 ```c int strcmp(const char* str1, const char* str2); ``` 比如: ```c if (strcmp("apple", "banana") > 0) { printf("apple comes after banana.\n"); } ``` 4. `strcpy()` 函数:复制整个字符串从一个位置到另一个位置。 ```c #include <string.h> char* strcpy(char* dest, const char* src); ``` 例如: ```c char newStr[20]; strcpy(newStr, "Original string"); ``` 5. `strupr()` 或 `tolower()` 函数(Windows API中的`_strupr()`):将字符串中的所有字符转换为大写或小写,`strupr()`仅适用于ASCII字符集。 ```c #include <ctype.h> #include <windows.h> // for _strupr void strupr(char* str); // 注意这不是标准库的一部分,Windows专用 ``` ```c strupr(str); ``` 注意:以上函数在实际使用时需要考虑内存管理以及错误处理,如检查输入参数的有效性目标缓冲区是否有足够的空间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码莎拉蒂 .

你的鼓励是我最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值