c - 获取错误的字符串长度

标签 c string sizeof string-length

我试图获取一个字符串的长度,但我得到了错误的值,它说它只有 4 个字符长。为什么是这样?我是否正确使用了 sizeof()

#include <stdio.h>

int main(void)
{
    char *s;
    int len;

    s = "hello world";
    len = sizeof(s);
    printf("%d\n", len);
}

最佳答案

sizeof 运算符返回指针的大小。如果你想要一个字符串的长度,使用 strlen功能。

即使您有一个数组(例如 char s[] = "hello world"),sizeof 运算符也会返回错误的值,因为它会返回长度包含字符串终止符的数组。

哦,作为旁注,如果你想让一个字符串指针指向文字字符串,你应该声明它const char *,因为字符串文字是常量并且不能被修改。

关于c - 获取错误的字符串长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18525272/

相关文章:

c - 如何找到数组的大小(从指向数组第一个元素的指针)?

c - Linux : Using module functions

CUDA 错误消息 : unspecified launch failure

r - 在单词的字母之间插入空格

r - R中的模糊匹配

php - 使用 === '' 检查空字符串不起作用

c - ‘sizeof’ 对不完整类型的无效应用

c++ - 与 sizeof 派生类混淆

c - 以编程方式验证 X509 证书和私钥匹配

c - 在 Verilog 过程接口(interface)中,是否可以多次扫描迭代循环?