gpt4 book ai didi

c - 我是否正确认为 strcmp 对于文字是等价的(并且安全的)?

转载 作者:太空狗 更新时间:2023-10-29 16:33:20 25 4
gpt4 key购买 nike

我们都知道溢出会导致麻烦,这就是 strn* 存在的原因——而且大多数时候它们是有意义的。但是,我已经看到使用 strncmp 比较命令行参数的代码,如下所示:

if(... strncmp(argv[i], "--help", 6) == 0

现在,我会认为这是不必要的,甚至可能是危险的(对于较长的参数,很容易误算文字中的字符)。

strncmp 在空值处停止,并且代码已经假定 argv[i] 以空值终止。任何字符串文字都保证以 null 结尾,那么为什么不使用 strcmp?

也许我遗漏了什么,但我已经看过几次了,这一次我很感兴趣,想问一下。

最佳答案

是的,它是绝对安全的,并且被认为是标准做法。字符串文字保证以正确的 null 终止。

关于c - 我是否正确认为 strcmp 对于文字是等价的(并且安全的)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/448563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com