繁体   English   中英

字符串仅包含“ \\ 0”时会发生什么? C

[英]What happens when a string contains only '\0'? C

在我的程序中,我正在从.txt文件中读取单词,然后将它们插入链接列表和哈希表中。

如果在一个单词后连续读取两个'\\ n'字符,则程序将读取的第二个单词将是'\\ n',但是我随后用'\\ 0'覆盖了它,因此该字符串实际上仅包含'\\ 0 ”。

我是否值得放置if语句,以便仅当单词是真实单词(即word [0]!='\\ n')时才执行程序的下一部分? 字符串'\\ 0'是否会占用哈希表/链接列表中的空间?

在C语言中,第一个元素为\\0的字符数组是一个空字符串 ,即长度为零。 如果您要的是在容器中保留空字符串,则没有太大意义。

这取决于您是否将空字符串视为有效条目。 您似乎正在存储单词,所以我想空字符串没有意义,但这是特定于应用程序的。

例如,可以存在一个环境变量( getenv返回一个有效的指针),但是值可以是“未设置”:一个空字符串。 在那种情况下,值是一个空字符串这一事实可能很重要。

因此,如果一个空字符串不重要,是否值得添加一条if语句来忽略它? 通常,这将是“是”,因为每个条目的存储和维护空字符串的开销可能远远超过一个if语句。 但是,当然这只是一个猜测,我不知道您的开销是多少, if执行多少次,以及您将节省多少空字符串条目。 您可能也不知道,所以我的后备职位只是存储重要的数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM