【问题标题】:what is the correct string terminator in cc中正确的字符串终止符是什么
【发布时间】:2013-05-13 17:11:47
【问题描述】:

据我所知,c 中的字符串终止字符是 '\0'。

我们也可以使用“0”作为终止字符吗?当我将 0 分配给 char 数组中的特定索引,然后使用 printf 时,它只打印到该特定索引。

因此,这两种方式是否等效?空字符是否等于字面量 0?

【问题讨论】:

标签: c arrays string char


【解决方案1】:

唯一可以用作空终止符的值是数值 0。

  • 0是数值0。
  • '\0' 也是在代码中表示数值 0 的另一种方式
  • '0' 不是数值0(它是数字零)并且不能用作终止符。

所有字符串文字都在最后一个可见字符之后隐式包含空终止符。在其他情况下,它可能会自动出现,也可能不会自动出现(取决于字符串的构造方式),但您必须确保在每种情况下都有空终止符。

【讨论】:

    【解决方案2】:
    • 空字符是否等于字面量 0?

    是的。

    空字符(也是空终止符),缩写为 NUL,是 值为零的控制字符。

    • 我们也可以使用“0”作为终止字符吗?

    没有。 '0' 是一个值为 0x30 的字符。非空字符,不等于0。

    查看此链接:http://www.asciitable.com/

    【讨论】:

      【解决方案3】:

      '\0' 是一种输入字节 0 的便捷方式。它称为转义。 '0' 是字符零;非常不一样。 c 中的所有字符串都以字节 0 结束。

      【讨论】:

        【解决方案4】:

        在 C 中,字符串是以 '\0' 结尾的 char 数组。当用单引号写一个 char 时,就像在 '\0' 中,你指的是那个 char 的 asci 值。因此表达式: 返回 '​​\0' == 0; 将返回 true。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-11-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多