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