cat*_*tee 15 c null-terminated
当我遍历字符指针并检查指针何时到达空终止符时,我收到错误.
const char* message = "hi";
//I then loop through the message and I get an error in the below if statement.
if (*message == "\0") {
...//do something
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
warning: comparison between pointer and integer
('int' and 'char *')
Run Code Online (Sandbox Code Playgroud)
我认为*在messagedereferences消息面前,所以我得到消息指向的值?strcmp顺便说一下,我不想使用库函数.
bla*_*ead 38
它应该是
if (*message == '\0')
Run Code Online (Sandbox Code Playgroud)
在C中,简单引号用于分隔单个字符,而双引号用于字符串.
在这一行......
if (*message == "\0") {
Run Code Online (Sandbox Code Playgroud)
......正如你在警告中看到的......
warning: comparison between pointer and integer
('int' and 'char *')
...实际上,您正在将a int与a 进行比较char *,或者更具体地说,将a int与地址进行比较char.
要解决此问题,请使用以下方法之一:
if(*message == '\0') ...
if(message[0] == '\0') ...
if(!*message) ...
Run Code Online (Sandbox Code Playgroud)
另外,如果你想比较你应该使用的字符串,strcmp或者strncmp找到string.h.
| 归档时间: |
|
| 查看次数: |
110205 次 |
| 最近记录: |