You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计指针数组中各元素内容的长度?含示例说明

获取C语言指针数组中字符串的长度

当然可以实现!在C语言里,要统计指针数组中每个字符串元素的长度,最常用也最便捷的方式就是借助标准库的strlen()函数,下面给你详细说明:

方法一:使用标准库strlen()函数

首先要记得包含头文件<string.h>,因为strlen()是定义在这个头文件里的。直接遍历你的指针数组,对每个元素调用strlen()就能得到对应的字符串长度。

示例代码如下:

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

#define MAX 2  // 对应你例子里的数组大小

int main() {
    char *str[MAX] = {"kendrick", "lamar"};
    
    // 逐个遍历指针数组元素
    for (int i = 0; i < MAX; i++) {
        // strlen()会自动统计到字符串结束符'\0'的字符数(不含'\0')
        int length = strlen(str[i]);
        printf("str[%d] 的内容长度是:%d\n", i, length);
    }
    
    return 0;
}

运行这段代码后,输出会是:

str[0] 的内容长度是:8
str[1] 的内容长度是:5

完全符合你的预期~

方法二:手动实现长度统计函数

如果不想依赖标准库,也可以自己写一个简单的函数来统计字符串长度,逻辑和strlen()一致:

#include <stdio.h>

#define MAX 2

// 自定义字符串长度统计函数
int my_strlen(const char *s) {
    int count = 0;
    // 遍历到字符串结束符'\0'停止
    while (*s != '\0') {
        count++;
        s++;
    }
    return count;
}

int main() {
    char *str[MAX] = {"kendrick", "lamar"};
    
    for (int i = 0; i < MAX; i++) {
        int length = my_strlen(str[i]);
        printf("str[%d] 的内容长度是:%d\n", i, length);
    }
    
    return 0;
}

注意事项

  • 一定要保证指针数组中的每个元素都指向以'\0'结尾的合法字符串,如果是野指针或者指向非字符串的内存区域,使用strlen()或者自定义函数都会导致未定义行为(程序崩溃或输出错误结果)。
  • strlen()返回的是size_t类型(无符号整数),如果需要和int类型一起使用,要注意类型转换的问题(不过在大多数日常场景中直接赋值给int也不会有问题)。

内容的提问来源于stack exchange,提问作者Dingani Makamo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:29:07