null-terminated相关内容

何时/为什么需要 '\0' 来标记 (char) 数组的结尾?

所以我刚刚阅读了一个关于如何创建表示字符串的字符数组的示例. 将空字符\0 放在数组的末尾,以标记数组的末尾.这是必要的吗? 如果我创建了一个 char 数组: 字符行[100]; 并输入单词: "你好\n" 在其中,字符将被放置在前六个索引 line[0] - line[6] 处,因此数组的其余部分将被填充还是空字符? 这本书说,这是一个约定,例如将字符串常量 "hel ..
发布时间:2022-01-12 20:18:19 其他开发

所有 char 数组都自动以空字符结尾吗?

可能我对谷歌搜索太垃圾了,但我一直认为 char 数组只能通过文字初始化 (char x[]="asdf";) 终止,并且有点惊讶当我看到情况似乎并非如此. int main(){字符 x[2];printf("%d", x[2]);返回0;} 输出:0 声明为 size=2*char 的数组不应该实际获得 2 个字符的大小吗?或者我在这里做错了什么?我的意思是将 char 数组用作简单 ..
发布时间:2021-11-18 04:06:26 其他开发

何时/为什么需要 '\0' 来标记(字符)数组的结尾?

所以我刚刚阅读了一个关于如何创建表示字符串的字符数组的示例. 空字符\0放在数组的末尾,以标记数组的结尾.这是必要的吗? 如果我创建了一个字符数组: 字符行[100]; 然后输入: "你好\n" 在其中,字符将放置在前六个索引line[0] - line[6],因此数组的其余部分将填充无论如何都是空字符? 这本书说,这是一个约定,例如将字符串常量"hello\n" 放入字 ..
发布时间:2021-11-18 03:39:32 其他开发

避免在嵌入式上使用func(char *)API

注意: 我对问题进行了很大的改动以使其更加具体,但是我将旧问题保留在帖子的末尾,以防对任何人有用. 新问题 我正在开发一个嵌入式应用程序,该应用程序使用以下类型来表示字符串: 字符串文字(默认为空终止) std :: array(非null终止) std :: string_view 我希望有一个函数可以统一接受所有函数.唯一的问题是,如果输入 ..
发布时间:2021-04-20 19:03:25 C/C++开发

删除结尾的NULL终止符

我有一个大的char数组,其中填充了0.我从套接字读取传入的文件,并将其内容放在缓冲区中.我无法写入所有'\ 0'的缓冲区,因此我分配了一个具有正确大小的新缓冲区并进行写入. 我使用这种方法来做到这一点: int i = 0; while(buf[i] != '\0'){ i++; } char new[i]; while(i){ new[i] = buf[i]; i ..
发布时间:2020-07-01 23:03:00 其他开发

指针与整数之间的警告比较

当我遍历字符指针并检查指针何时到达空终止符时,我会收到警告. const char* message = "hi"; //I then loop through the message and I get an error in the below if statement. if (*message == "\0") { ...//do something } 我得到的 ..
发布时间:2020-07-01 23:00:39 其他开发

文件如何包含空字节?

在操作系统中以空终止字符串(即C)编写的文件中文件是否可能包含空字节? 例如,如果我运行以下shell代码: $ printf "Hello\00, World!" > test.txt $ xxd test.txt 0000000: 4865 6c6c 6f00 2c20 576f 726c 6421 Hello., World! 我在test.txt中看到了一个空字 ..
发布时间:2020-07-01 23:00:37 其他开发

字符串中的空字符

考虑以下字符串: var s = "A\0Z"; 其长度为3,由s.length给出.使用console.log可以看到字符串没有被剪切,并且s[1]是""和s.charCodeAt(1)是0. 当您在Firefox中对其进行警报时,您会看到AZ.当您在Chrome/Linux中使用alert(s)对其进行警报时,\0会终止该字符串,并显示A. 我的问题是:浏览器和Java脚 ..
发布时间:2020-07-01 23:00:34 前端开发

什么时候/为什么需要'\ 0'来标记(字符)数组的结尾?

因此,我仅阅读了一个有关如何创建代表字符串的字符数组的示例. 空字符\0放在数组的末尾以标记数组的末尾.这有必要吗? 如果我创建了一个char数组: char line[100]; 并输入: "hello\n" 其中的字符将被放置在前六个索引line[0]-line[6]上,因此数组的其余部分仍然会填充空字符吗? 这本书说,这是一个惯例,例如,将字符串常量" ..
发布时间:2020-07-01 23:00:31 其他开发

当我们在C的字符串末尾不包含'\ 0'时会发生什么?

在C中,当我以这种方式初始化数组时: char full_name[] = { 't', 'o', 'a', 'n' }; 并用printf("%s", full_name); 打印 并使用 valgrind 运行它 未初始化的值是通过堆栈分配创建的 为什么会这样? 解决方案 由于%s格式说明符期望以空字符结尾的字符串,因此代码的结果行为是不确定的.您的程 ..
发布时间:2020-07-01 23:00:26 其他开发

末尾带有垃圾字符的字符串数组

我有一个char数组缓冲区,用于存储用户将要输入的字符.我的以下代码可以运行,但是有一些我无法弄清的故障: 当我执行printf来查看Buffer中的内容时,它确实填满了,但是最后我得到了垃圾字符 即使被声明为char Buffer [8],它也不会停止在8个字符处; 有人可以向我解释发生了什么,也许我该如何解决?谢谢. char Buffer[8]; //holds the ..
发布时间:2020-07-01 23:00:24 其他开发

Java BufferedReader,用于零终止的字符串

我需要从Java中的InputStream中读取零终止的字符串。 是否存在类似于BufferedReader.readLine()方法的零终止字符串读取? p> 解决方案 否。 Java不能这样识别以零结尾的字符串。您必须阅读 InputStream 并查找一个0字节。 请注意,这不能解决字符编码的问题。 InputStream 将为您提供字节流,然后您必须通过 Reader ..
发布时间:2020-06-07 18:46:09 Java开发

Java中的特殊字符\0 {NUL}

如何在字符串中替换\0(NUL)? 字符串b =“2012yyyy06mm”; //某事我想要 字符串c =“2 \\\\0012yyyy06mm”; String d = c.replaceAll(“\\\\\\”,“”); //不工作 字符串e = d.replace(“\ 0”,“”); //呃,同样的 System.out.println(c +“\ n”+ d +“\ n”+ ..
发布时间:2019-01-02 14:02:57 Java开发