C语言计算字符串长度的几种方法

本文介绍了C语言中计算字符串长度的三种方法:自定义函数、使用strlen()函数及利用sizeof()操作符。并详细说明了各种方法的特点及注意事项。

C语言计算字符串长度的几种方法

C语言计算字符串长度,可以手动计算也可以使用库函数或者sizeof()操作符。

  • 自定义函数求长度
  • 使用strlen()函数
  • 使用sizeof()操作符

自定义函数

int cont_str(char *s)
{
    int i = 0;      
    while ( str[i++] != '\0')
        ;
    return i;
}
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

使用string头文件中的strlen()函数

strlen(str); //假设str为待求的字符串数组名

 
  • 1
  • 2

使用sizeof()操作符

sizeof(str)/sizeof(str[0]); //假设str为待求的字符串数组名

 
  • 1
  • 2

注意:

  • strlen()函数求出的字符串长度为有效长度,既不包含字符串末尾结束符 ‘\0’;
  • sizeof()操作符求出的长度包含字符串末尾的结束符 ‘\0’;
  • 当在函数内部使用sizeof()求解由函数的形参传入的字符数组的长度时,得到的结果为指针的长度,既对应变量的字节数,而不是字符串的长度,此处一定要小心。【1

参考文献: http://bbs.fishc.com/thread-2502-1-1.html

在 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]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值