C - 检查字符串是否包含任何非空字符

C - checking if strings contain any non-null characters

我有一个带有两个字符串参数的函数。我必须检查两个字符串是否包含任何非空字符。这是一个示例代码:

void fun(const char* str1, const char* str2)
{
    if (!str1 || !str1[0] || !str2 || !str2[0])
    {
        return;
    }

    // process
}

这是 C 中的标准方法还是您推荐其他解决方案?

条件写成

就可以了
if ( !str1[0] || !str2[0] )

即当函数在传递空指针调用未定义行为时遵循 C 标准字符串函数的约定。

函数的调用方应保证传递的指针不是空指针。