相关疑难解决方法(0)

如果字符串中间存在空字符怎么办?

我知道字符串的结尾由空字符表示,但我无法理解以下代码的输出.

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

int
main(void)
{
    char s[] = "Hello\0Hi";
    printf("%d %d", strlen(s), sizeof(s));
}
Run Code Online (Sandbox Code Playgroud)

输出:5 9

如果strlen()在o的末尾检测到字符串的结尾,那为什么sizeof()不做同样的事情呢?即使它没有做同样的事情,也不是'\ 0' 一个空字符(即只有一个字符),所以答案不应该是8吗?

c null sizeof strlen

3
推荐指数
4
解决办法
6125
查看次数

标签 统计

c ×1

null ×1

sizeof ×1

strlen ×1