问题标签 [null-character]
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.
c++ - 如何删除用户输入字符串末尾的空字符?
我有一个由 20 个字符串组成的数组,其中最多 81 个字符将由用户填充,如果用户输入的字符大于 81 个字符,我该如何去除最后多余的空字符?
我试图寻找解决方案,但大多数似乎都要求我知道用户在程序运行之前输入了多少个字符。
c - 在 C 中打印字符串时出现无法解释的行为
以下代码按预期工作并输出ABC
:
但是如果我删除添加空字符的行
我得到随机输出等wBCÇL, ╗BCÄL, ┬BCNL
。
为什么呢?我期望 printString() 中的循环永远运行,因为它没有遇到“\ 0”,但是“A”、“B”和“C”发生了什么?为什么 B 和 C 仍然出现在输出中,但 A 被一些随机字符替换?
string - 在 VB.net 中将 Byte() 转换为 String 后从 String 中删除 null Char
我有一个来自 dll 的字符串。据说,字符串是从 dll 中的 Byte() 转换而来的。
下面是我如何从 dll 获得价值的片段:
我想将字符串转换为十六进制值。当我尝试在互联网上使用十六进制转换器确认十六进制结果是否正确时。十六进制值不一样。
我怀疑它在字符串中有一些空值,因为当我将字符串输出到文本框并转换它时,它会给出正确的十六进制值。例如:toHex(tbResultA.text),将给出正确的十六进制值。
如何从字符串中删除空字符?我尝试了多种方法来删除它,但它不起作用。这是我尝试过的片段:
这是我将字符串转换为十六进制的代码段:
谢谢。
c - 这个空字符打印的输出是什么?
我期待一个空格,printf("%c",i)
而它在评估语句后明显返回一个值,所以我认为它应该打印一个空白或其他值,因为它不是空字符串,而是空字符。
我要说的是 printf 在调用完成时返回一些值,因为它是一个函数。所以当printf("%c",i)
返回一些值时它应该打印一些东西。
c++ - 为什么我的文件读取功能会在多余的 CR LF 托架应该放置空终止符?
今天我尝试整理一个简单的 OpenGL 着色器类,它从文件中加载文本,根据一些(非常甜美的)自定义语法(例如,编写“ .variing [type] [name];" 将允许您在两个着色器中定义一个可变变量,同时只编写一次,与 ".version" 相同,) 然后使用两者编译 OpenGL 着色器程序,然后标记着色器类当且仅当着色器代码正确编译时为“就绪”。
现在,我做了这一切,但后来遇到了最奇怪(坦率地说有点可怕)的问题。我设置了所有东西,用一些包含有效着色器代码的文件声明了一个新的 'tt::Shader',只是让它告诉我着色器无效,但是当我询问错误是什么时给了我一个空字符串(这意味着OpenGL 给了我一个空字符串,因为它是从那里得到的。)
我再次尝试,这次使用了明显无效的着色器代码,虽然它识别出着色器无效,但它仍然没有给我任何关于错误是什么的信息,只是一个空字符串(我认为显然错误识别部分它也和以前一样。)
感到困惑的是,我手动将两个着色器(有效和无效的着色器)作为字符串重新编写,直接用字符串再次编译类,没有文件访问权限。这样做,错误消失了,第一个编译正确,第二个失败但正确识别了错误是什么。
更困惑的是,我开始将文件中的字符串与我自己编写的字符串进行比较。原来前者比梯子长一点,尽管打印相同。数了数之后,我意识到这些字符一定是在导入过程中被截断的 Windows CR LF 行尾回车字符。
为了测试这一点,我拿起手写的字符串,在它们将被切断的地方插入马车,然后再次运行我的字符串比较测试。这一次,它评价theres长度相同,但还告诉我,两者仍然不相等,这很令人费解。
因此,我编写了一个简单的 for 循环来遍历两个字符串的字符,然后将每个字符串彼此相邻打印,然后转换为整数,这样我就可以看到它们的索引值。我运行程序,浏览了(相当长的)列表,并得出了一个不同的有见地但更不明确的答案:隐藏的字符在正确的位置,但它们不是马车......它们是空终止符!
这是我正在使用的文件读取功能的代码。这没什么花哨的,只是标准库的东西。
如果你们都可以阅读并告诉我到底发生了什么,那就太棒了,因为我完全不知道它对我的琴弦做了什么导致这种情况。
最后,我确实明白为什么空终止符没有出现在我面前,但对于 OpenGL 却出现了,梯子使用 C 字符串,而我只是用 std::string 对象做所有事情,其中根据给定的长度存储东西他们几乎只是花哨的 std::vector 对象。
java - 如何在 mac 上的文件名中输入 NULL CHARACTER?
我想在 mac 上创建一个名称中包含空字符的文件。文件名如 - abc\0ds.txt 我尝试创建一个名为“abc\0ahd.txt”的文件,但名称中的 \0 并不是真正的 unicode 空字符。这是另一个角色。我想创建一个名称中包含空字符的文件,因为我想重现一个用于我的应用程序集成测试的场景,该场景使用 fileItemStream.getName() (org.apache.commons.fileupload.FileUploadBase) 来获取文件名,然后它应该抛出 InvalidFileNameException 异常(org.apache.commons.fileupload.InvalidFileNameException)
我们在生产中遇到这样的场景并获得类似“org.apache.commons.fileupload.InvalidFileNameException:无效文件名:uploadertest.asp\0.png”的日志,但我无法通过从我的系统或集成测试上传文件来重现这种情况但是当我像这样发送字节流时,它可以从单元测试中重现。
c - 遍历C中的字符数组
最近我在下面的示例中在 C 中看到了这个 while 循环条件,但我不知道 while 条件的真正含义以及编译器如何知道它何时完成。有人可以向我解释吗?
这就是我认为的意思:while 循环遍历 char 数组,直到数组结束,因为没有别的东西,然后 while 循环结束,还是我错了?我尝试使用相同的 while 循环,但使用另一种语言(例如 Go),但是编译器抛出错误,说我不能使用非布尔值。
c++ - 如何将具有空字符的字节数组输入 std::iostream?
我必须将一个包含空字符的字节数组输入到std::iostream
. 原始数据如下所示:
我将这块数据存储到一个 char 数组中:
不幸的是,执行此操作时,由于空字符,输出停止在位置 2。
由于这只是一个字节数组而不是真正的字符串,我怎样才能让流对象简单地吐出完整tmc_command
而不停止在空字符处?或者我应该使用不同的对象而不是char []
?谢谢你。
c++ - C ++写入路径名中包含不需要的空字符的文件
我遇到了这个单一的问题:我必须在类似"C:....\0-myfolder\subfolder\file.txt"的路径上写入 txt 文件, 其中 '0-myfolder' 是全名文件夹的
将其写为带有双反斜杠的普通路径不起作用,因为在序列中读取了不需要的空字符。我试图写入同一目录中的另一个文件夹,该文件夹的名称不以 0 开头,并且它可以正常工作,并且由于其他原因我无法重命名该文件夹。
有没有办法强制 c++ 不读取空字符?
c - 为什么这仍在计算字符串中的空格?
我刚刚开始编写代码,我需要帮助弄清楚为什么这个循环会计算字符串中的空格。
据我了解,这段代码应该告诉计算机不要计算空格“/ 0”,如果循环遍历字符串并且它是任何其他字符,则增加计数。