问题标签 [null-terminated]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
94 浏览

c# - 现在还在使用“public String(char* value)”吗?

我遇到了(内部(定义)字符串“类”(.NET)):

评论里写的是什么:

我的问题:

我只能在不安全的上下文中使用它吗,现在使用那个 String(char* value) 是否仍然有意义,或者这只是过去的遗留物,基于这个 "ABC\0"(termination of that string) ?

如果我可以/应该使用它,这种方法的情况如何?

0 投票
3 回答
210852 浏览

c - 指针和整数之间的警告比较

当我遍历字符指针并检查指针何时到达空终止符时,我收到警告。

我得到的错误是:

我还以为*前面的messagedereferences message,那么我得到message指向的值呢?顺便说一句,我不想​​使用库函数strcmp

0 投票
4 回答
1087 浏览

c# - C#中的字符串是如何终止的?

这个程序抛出ArrayIndexOutOfBoundException.

为什么会这样?如果字符串不是以空值结尾的。在 C# 中如何处理字符串?如何在不使用string.Length属性的情况下获得长度?我在这里很困惑。!

0 投票
2 回答
449 浏览

c - 将 NULL 分配给 c 字符串的中间

我正在编写一个函数eliminate(char *str, int character),它需要一个 c 字符串和一个要消除的字符作为输入,扫描str实例character并将当前索引处的值替换为......什么?我想NULL,但这似乎有风险,并且可能会与其他依赖于 c 字符串中的空终止符的函数混淆。例如:

我的问题是,如何正确实现此功能,以便有效地消除字符串中指定字符的所有实例?如果适当的消除分配'\0'给要替换的字符,这如何不影响整个字符串(即,它有效地在第一次'\0'遇到时结束)。例如,如果我在同一个字符串上运行上述函数两次,第二次调用将只检查字符串直到最后一个字符被替换的位置。

0 投票
1 回答
968 浏览

assembly - Manual Null-Termination on Unix using Intel x86 Assembly (address vs value in memory operands)?

I have to be missing something obvious here, but I can't seem to find the end of a string.

My code starts off with a few calls that read as follows:

The professor gave us a shell program to work from, but I've got a pretty good handle on most of it. What's throwing me off is that I was of the impression that rlen should now contain the length of the string I'm using, but when I type the following:

I get a segfault. Same, also, if I use [buf + rlen]. Neither buf nor ESI on their own cause a segfault, so it seems to me that rlen isn't doing what I think it is.

Anyone able to help me figure out what's going on?

0 投票
1 回答
1895 浏览

c - 如何将空终止符附加到索引字符指针的末尾

我运行了以下代码,它在 while 循环永远运行时崩溃了。当我调试这段代码时,我发现了问题*(pointer+cnt)='\0';空字符永远不存在。我不知道如何在此处附加空终止符,以免程序崩溃。

0 投票
4 回答
677 浏览

c - 即使(我认为)它们是空终止的,打印字符串也会产生垃圾

当我运行时print_puzzle(create_puzzle(input)),我在输出的底部得到一堆 gobbledegook,只在最后一行。我不知道为什么这种情况不断发生。输出应该是 9 行,每行 9 个数字(输入是一个数独游戏,零代表空格)。

这一堆代码应该接受该输入,创建一个二维字符串数组,然后使用 print_puzzle 将这些字符串打印在一个网格中。它们是字符串,因为最终我将实现一种方法来显示正方形可能的所有值。但是现在,当我把它打印出来时,事情就搞砸了。我什至尝试将空值放在所有 81 个字符串的每个元素中,但是在打印字符串时它仍然搞砸了。我迷路了!

0 投票
1 回答
1198 浏览

c++ - 在 C++ 中处理标准输入中的空字符

我正在为 Chrome 编写一个使用本机主机消息传递的扩展程序。目标是让 Chrome 在应用模式下运行时在操作系统默认浏览器中打开链接。Chrome 通过管道实现本机主机消息传递到本机应用程序的标准输入和标准输出。这一切都很好,我已经让扩展程序与本机应用程序对话。我遇到的问题是前 4 个字节的数据包含以下字符串的长度,出于我的目的,它始终包含空字符。下面显示了一个示例 strace。处理这个问题的最佳方法是什么?我想使用像 cin 或 getline 这样的东西,如果可能的话,它会停止程序直到收到输入。

这是当前的 C++ 代码。我尝试过使用 cin.get 和 fgets 的变体,但它们不会等待输入,并且 Chrome 在循环运行异常后会终止程序。

0 投票
1 回答
139 浏览

c++ - sgetn 不会为空终止字符串

sgetn将 achar*作为它的第一个参数并向其写入字符。它不会尾随'\0'写入char*.

这种行为似乎与我能找到char*写入的所有其他时间不一致。但是,它在 Clang、gcc 和 Visual Studio 中一致的,所以我不敢相信这是所有编译器都有的错误。

该标准是否有理由不需要尾随'\0'char*?

[现场示例]

0 投票
2 回答
678 浏览

swift - 如何在 Swift 中处理来自 C 的缓冲字符串?

我正在使用 libxml2 的 sax 解析器来读取大型 xml 文件。大多数回调处理程序都提供了一个以 NULL 结尾的字符指针。使用String.fromCString这些可以在 Swift 中转换为常规字符串。但是 sax 使用缓冲区来读取字节,因此characters可以使用字符串的一部分(即缓冲区的大小)调用回调 ( ) 之一。这个部分字符串甚至可能在 Unicode 代码点的中间开始/结束。回调将被多次调用,直到提供完整的字符串(以块的形式)。

我正在考虑连接所有块直到可以组装完整的字符串,或者以某种方式检测部分字符串中的代码点边界,仅处理完成直到无效代码点。

处理这种情况的最佳方法是什么?处理应该尽可能快,同时仍然正确。内存使用量应保持在最低限度,但不能以性能为代价。