我试图获取一个字符串的长度,但我得到了错误的值,它说它只有 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/