首页 > 编程笔记 > C语言笔记

C语言计算字符串长度

C语言字符串本质上是一个字符数组,以空字符'\0'结尾。计算字符串的长度是一个常见的操作,它可以帮助我们更好地处理和操作字符串。

【推荐】使用标准库函数 strlen()

C 语言的标准库 <string.h> 提供了一个名为 strlen() 的函数,专门用于计算字符串的长度。这个函数非常易于使用,而且效率很高。

以下是使用 strlen() 函数的示例:

#include <stdio.h>
#include <string.h>

int main() {
    char str[] = "Hello, World!";
    int length = strlen(str);
    printf("字符串 \"%s\" 的长度是: %d\n", str, length);
    return 0;
}

输出结果将是:

字符串 "Hello, World!" 的长度是: 13

strlen() 函数会遍历字符串,直到遇到空字符'\0',并返回遍历的字符数。需要注意的是,strlen() 不会计算空字符本身。

【不推荐】自定义函数计算字符串长度

虽然使用标准库函数 strlen() 非常方便,但了解其工作原理并能够自己实现一个类似的函数也很重要。以下是一个简单的自定义函数,用于计算字符串长度:

int my_strlen(const char *str) {
    int count = 0;
    while (*str != '\0') {
        count++;
        str++;
    }
    return count;
}

这个函数的工作原理如下:

  1. 我们使用一个指针 str 来遍历字符串。
  2. 一个计数器 count 用于记录字符数。
  3. 我们使用一个 while 循环,只要当前字符不是空字符'\0',就继续循环。
  4. 在每次循环中,我们增加计数器,并将指针移动到下一个字符。
  5. 当遇到空字符时,循环结束,返回计数器的值。


我们可以这样使用这个自定义函数:

#include <stdio.h>

int my_strlen(const char *str);

int main() {
    char str[] = "Hello, World!";
    int length = my_strlen(str);
    printf("字符串 \"%s\" 的长度是: %d\n", str, length);
    return 0;
}

两种方式的对比

虽然我们的自定义函数可以正确计算字符串长度,但在性能方面可能不如标准库的 strlen() 函数。标准库函数通常经过优化,可以利用特定硬件架构的特性来提高效率。例如,某些实现可能会一次检查多个字节,而不是一个字符一个字符地检查。
 

然而,对于小型项目或学习目的,自定义的 my_strlen() 函数完全足够使用,它清晰地展示了计算字符串长度的基本原理。


声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。