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