我一直听说使用==
运算符来比较字符可能会导致一些问题。
我的问题是 - 什么样的问题?
例如,使用之间有什么区别:
if (Text[0] == 'A') { ; }
和
if (!memcmp(Text, "A", 1)) { ; }
答案 0 :(得分:7)
你把两个不同的想法模糊在一起。
没有错
if (Text[0] == 'A')
它会做你想要的。
你可能听到的,以及你能做什么,
if (Text == "A")
即使Text
包含" A"
如果您想比较字符串,通常使用strcmp
:
if(strcmp(Text, "A") == 0)
当然,这仅适用于格式正确的以null结尾的字符串。
最后,虽然你当然可以做到
if (!memcmp(Text, "A", 1))
如果你真的想要,它是一种奇怪且可能效率低下的用法,它不能为你买任何东西。