是否有任何ASCII字符作为占位符而没有效果?

时间:2013-11-09 23:23:42

标签: c ascii

正如问题已经说明的那样:

我想知道,是否有一个ASCII字符将由C in / out处理而没有任何影响?

我写的例子(Y代表这个角色的地方)

printf ("abcYdYfg");

输出应为:

  

abcdfg

此控制字符也不会影响任何标准内存或字符串操作函数。

是否有任何ASCII字符符合此要求?

2 个答案:

答案 0 :(得分:2)

您可以尝试使用0x1d0x1e0x1f,这些是组,记录和单位分隔符。它们的目的正是您想要做的。见ASCII, the history

话虽如此,我认为您不想以这种方式使用特殊字符,而是在评论中使用memmove(3)作为@R建议。

答案 1 :(得分:2)

答案很大程度上取决于“无效”的含义。就写入文件/流/设备的内容而言,没有这样的东西。写入的每个字符都将文件位置提前一个字节/字符或在该行上传输一个字符。但是,如果您正在谈论写入交互式显示设备(终端),则有些字符不会移动光标。最明显的例子是NUL字符('\0')。您不能将其嵌入C字符串中(因为它会终止字符串),但您可以使用%c打印它,使用printfputcfwrite打印参数0,等