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

C语言函数能否仅传入字符串,在函数内部获取其长度?

可行方法说明

如果你的字符串是标准C风格的以'\0'结尾的字符串,完全可以只传字符串指针,在函数内部用strlen()获取有效长度,不用手动传参。

具体实现

修改后的调用代码

char text2[] = "Hello!!";
write_coord_screen(2, 2, text2, FB_BLACK, FB_WHITE);

函数内部调整

#include <string.h> // 必须引入这个头文件才能使用strlen

void write_coord_screen(int x, int y, char* text, int fg_color, int bg_color) {
    // 获取字符串有效长度(不包含末尾的'\0')
    size_t str_len = strlen(text);
    // 后续用str_len处理字符串即可
}

注意要点

  • 必须保证传入的字符串以'\0'结尾,否则strlen()会越界读取内存,触发未定义行为(比如乱码、程序崩溃)。
  • 如果你原本用sizeof(text2)是想包含末尾的'\0',可以用strlen(text) + 1得到包含终止符的总字节数。
  • 如果字符串里需要存储'\0'(比如二进制数据、特殊格式文本),那这种方法就不适用,还是得手动传递长度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 09:10:26