int func(char* string, char from, char to)
{
int result = 0;
if(!string) return 0;
// ...
}
我不知道这个if语句是否正在检查,给定的字符串是空还是NULL。我试着检查一下但是我没有收到明确的答案。
答案 0 :(得分:1)
您的代码检查字符串是否为NULL。如果是,则返回0。 要检查字符串是否为空,您可以执行以下任一操作:
if (strlen(string) == 0)
{
printf("String is empty.\n");
return -1;
}
或者你可以这样做:
if (*string == '\0')
{
printf("String is empty.\n");
return -1;
}
strlen()方式只应在字符串以NULL结尾时使用。
答案 1 :(得分:1)
Instance2
相当于:
if (!string)
因此它测试传递的参数if (string==0)
是否指向一个对象。该对象是否是一个字符串(一个以空字符结尾的字符序列),它无法检查。
答案 2 :(得分:0)
有点令人困惑,因为逻辑上它说“如果不是字符串”,而不是它意味着如果这不是一个字符串,它实际上意味着这个字符串不存在,即它是否为空。