String 最适合填充字符串的字符

String 最适合填充字符串的字符,string,character,special-characters,padding,vhdl,String,Character,Special Characters,Padding,Vhdl,填充字符串时最合适的字符是什么(最好是0到127的范围)?我希望/更喜欢它是非打印字符,并且没有与之关联的字符 我试过了,但这似乎表示字符串的结束(后面没有打印任何内容,因此命名为“null terminator”)。似乎有一个(128)字符,但我不确定它的具体用途,我必须手动将该范围的字符添加到我的。添加完整(0-255)字符范围并不是世界末日,只是一些额外的工作 这个角色可以工作,但当有这么多专业角色时,这似乎不是一个最佳实践。可能是一个不占用任何空间的角色 我用VHDL来做这件事,所以可用

填充字符串时最合适的字符是什么(最好是0到127的范围)?我希望/更喜欢它是非打印字符,并且没有与之关联的字符

我试过了,但这似乎表示字符串的结束(后面没有打印任何内容,因此命名为“null terminator”)。似乎有一个(128)字符,但我不确定它的具体用途,我必须手动将该范围的字符添加到我的。添加完整(0-255)字符范围并不是世界末日,只是一些额外的工作

这个角色可以工作,但当有这么多专业角色时,这似乎不是一个最佳实践。可能是一个不占用任何空间的角色

我用VHDL来做这件事,所以可用的字符在。您还可以查看

中的字符类型(VHDL)关于这一点的两个想法:

  • 如果你坚持使用非打印字符,你有很多选择。考虑Bel~(7)CTRL G,它是非打印的。很少再使用了。它可以在终端和多个编辑器中键入(CTRL-G)。如果它不小心“打印”(例如在终端中),它是无害的。而且很有趣。在其他条件相同的情况下,贝尔斯登很有趣^G^G^G:-)
  • 使用其他情况下不使用的打印字符。这将使调试和字符串常量更容易。它确实需要在应用程序中禁止使用其他打印字符。e、 g.反斜杠、反勾号、波浪线等
  • 我倾向于选择2。你一眼就能看到你的键盘字符,你就可以输入它们了。如果源或数据在系统之间移动,则不需要特殊的字体或编辑器。

    对此有两种想法:

  • 如果你坚持使用非打印字符,你有很多选择。考虑Bel~(7)CTRL G,它是非打印的。很少再使用了。它可以在终端和多个编辑器中键入(CTRL-G)。如果它不小心“打印”(例如在终端中),它是无害的。而且很有趣。在其他条件相同的情况下,贝尔斯登很有趣^G^G^G:-)
  • 使用其他情况下不使用的打印字符。这将使调试和字符串常量更容易。它确实需要在应用程序中禁止使用其他打印字符。e、 g.反斜杠、反勾号、波浪线等

  • 我倾向于选择2。你一眼就能看到你的键盘字符,你就可以输入它们了。如果源或数据在系统之间移动,则不需要特殊字体或编辑器。

    如果使用固定长度类型
    字符串(1到LEN)
    ,我建议使用以下任一字符填充字符串:

    • NUL字符:
      • 优点:字符串函数可以对“实际”内容(即第一个NUL字符之前的任何内容)进行操作
      • 缺点:ModelSim不能很好地显示字符串,因为它还显示所有NUL字符
    • “(空格):
      • 优点:很好的ModelSim演示
      • 缺点:字符串操作必须检查最后的所有空格
    因此,基于此,用于固定长度字符串的填充字符取决于字符串的使用方式

    使用固定长度VHDL字符串类型(
    string(1到LEN)
    )的替代方法是使用
    文件包中声明的类型
    “textio”,因为
    类型行是访问字符串。然后,行是一个指向字符串的“指针”,在VHDL中称为
    access
    type,并且引用的字符串只能以所需的长度创建,因此可以避免填充。问题:

    • 优点:
      • 字符串长度可以动态确定,所以可变长度的文本可以适应,甚至是长测试
    • 缺点:
      • 模拟器,例如ModelSim,不能显示
        access
        类型的内容,如“line”
      • 由于VHDL语言在使用
        access
        类型方面的限制,为字符串/行操作生成函数/过程可能更为复杂
      • 不支持“访问”类型的合成

    如果使用固定长度类型
    字符串(1到LEN)
    ,我建议使用以下任一字符填充字符串:

    • NUL字符:
      • 优点:字符串函数可以对“实际”内容(即第一个NUL字符之前的任何内容)进行操作
      • 缺点:ModelSim不能很好地显示字符串,因为它还显示所有NUL字符
    • “(空格):
      • 优点:很好的ModelSim演示
      • 缺点:字符串操作必须检查最后的所有空格
    因此,基于此,用于固定长度字符串的填充字符取决于字符串的使用方式

    使用固定长度VHDL字符串类型(
    string(1到LEN)
    )的替代方法是使用
    文件包中声明的类型
    “textio”,因为
    类型行是访问字符串。然后,行是一个指向字符串的“指针”,在VHDL中称为
    access
    type,并且引用的字符串只能以所需的长度创建,因此可以避免填充。问题:

    • 优点:
      • 字符串长度可以动态确定,所以可变长度的文本可以适应,甚至是长测试
    • 缺点:
      • 模拟器,例如ModelSim,不能显示
        access
        类型的内容,如“line”
      • 由于VHDL语言在使用
        access
        类型方面的限制,为字符串/行操作生成函数/过程可能更为复杂
      • 不支持“访问”类型的合成

    Isim中的NUL字符在它之后停止打印任何内容,因此,如果我将诸如
    “msg”&NUL&“more”
    报告之类的消息连接在一起,我只会看到“msg”。空格字符可以工作,只是它没有特殊性,是一个打印字符(在所有情况下都会占用空格)。我倾向于添加