gpt4 book ai didi

c - c 字符串中空字符的空间

转载 作者:太空宇宙 更新时间:2023-11-04 05:13:41 25 4
gpt4 key购买 nike

什么时候需要为 C 字符串中的 NULL 字符显式提供空间。
例如
尽管我没有将 str 声明为 7 个字符长,即字符串的字符加上 NULL 字符,但它可以正常工作。

#include<stdio.h>

int main(){
char str[6] = "string";
printf("%s", str);
return 0;
}

虽然在这个问题https://stackoverflow.com/a/7652089用户说
如果您稍后需要修改字符串,但知道它不会超过 40 个字符(或 39 个字符后跟空终止符,具体取决于上下文),这将很有用。

取决于上下文”是什么意思?

最佳答案

When is it necessary to explicitly provide space for a NULL character in C strings?

总是。没有 \0 字符会使 strcpystrlen 和通过 %s 打印等功能出现错误。它可能适用于某些示例(例如您自己的示例),但我不会打赌。

另一方面,如果您的字符串是二进制的并且您知道数据包的长度,则不需要额外的空间。但是你不能使用 str* 函数。无论如何,这不是你的问题。

关于c - c 字符串中空字符的空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18054126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com