我们都知道麻烦泛滥可能导致,这就是斯特恩*存在的原因,而且大部分时间都是有意义的。但是,我已经看到使用strncmp比较命令行参数的代码,例如:

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

现在,我认为这是不必要的,甚至可能是危险的(对于较长的参数,很容易在文字中错误地计算字符)。
strncmp在null上停止,并且代码已经假定argv[i]以null结尾。任何字符串文本都保证以空结尾,那么为什么不使用strcmp呢?
也许我错过了什么,但我已经看过几次了,这次我很好奇地问。

最佳答案

是的,这是完全安全的,被认为是标准做法。保证字符串文本以正确的空结尾。

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

10-09 07:02