C语言计算字符串的长度strlen

本文介绍了一个使用C语言实现的简单程序,该程序定义了一个名为strlen的函数来计算字符串的长度,并通过两个示例字符串展示了如何调用此函数并打印结果。
#include <stdio.h>
#include <stdlib.h>

size_t strlen(char *string)
{
    int length=0;
    while(*string++ != '\0')
        length+=1;
    return length;
}
int main()
{
    char *str="1234567890";
    char *str1="Hello world!";
    size_t len=strlen(str);
    size_t len1=strlen(str1);
    printf("The length of string 1 is:%d",len);
    printf("\n");
    printf("The length of string 2 is:%d",len1);
    printf("\n");
    return 0;
}


 

在 C 语言中,计算字符串长度的主要方法有以下几种: ### 使用标准库函数 `strlen` C 标准库提供了 `strlen` 函数用于计算字符串长度。该函数定义在 `<string.h>` 头文件中,其功能是返回以空字符 `\0` 结尾的字符串的实际字符数(不包括结尾符)[^1]。 ```c #include <stdio.h> #include <string.h> int main() { char s[] = "abc"; int len = strlen(s); printf("%d\n", len); // 输出:3 return 0; } ``` ### 自定义实现 `my_strlen` 函数 可以手动编写一个类似于 `strlen` 的函数来计算字符串长度。基本原理是遍历字符串直到遇到 `\0` 字符,并统计字符个数[^2]。 ```c #include <stdio.h> int my_strlen(char* str) { int count = 0; while (*str != '\0') { count++; str++; } return count; } int main() { char arr[] = "welcome to China"; printf("此字符串长度为%d\n", my_strlen(arr)); // 输出:16 return 0; } ``` ### 使用 `sizeof` 计算数组长度 需要注意的是,`sizeof` 是一个运算符而非函数,它用于计算数据类型或对象所占内存的大小(以字节为单位)。对于字符数组而言,`sizeof` 可以计算出整个数组占用的字节数,但会包含结尾的空字符 `\0`。因此,若想得到实际字符串长度,需减去一个字节[^4]。 ```c #include <stdio.h> int main() { char a1[] = "abc"; int length = sizeof(a1) - 1; // 总字节数减去空字符 printf("字符串长度:%d\n", length); // 输出:3 return 0; } ``` ### 注意事项与区别 - `strlen` 是运行时计算字符串长度的函数,适用于指针和数组。 - `sizeof` 是编译时计算内存大小的操作符,仅适用于数组名,无法用于指针指向的字符串。 - `sizeof` 返回值包括字符串结尾的 `\0` 字符,而 `strlen` 不包括[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值