问题描述
我有一个带有两个字符串参数的函数。我必须检查两个字符串是否包含任何非空字符。这是一个示例代码:
void fun(const char* str1,const char* str2)
{
if (!str1 || !str1[0] || !str2 || !str2[0])
{
return;
}
// process
}
这是 C 语言中的标准方法还是您推荐其他解决方案?
解决方法
这样写条件就够了
if ( !str1[0] || !str2[0] )
即当传递空指针调用未定义行为时,函数遵循 C 标准字符串函数的约定。
函数的调用者应该保证传递的指针不是空指针。