c/c ++当size为0时strncmp的返回值是多少

now*_*ins 5 c c++ size strncmp

c/c ++ strncmp签名如下所示:

int strncmp ( const char * str1, const char * str2, size_t num );
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果num为0,返回值是多少?标准怎么说?找不到某些在线文档的答案.

谢谢.

Dan*_*her 6

好吧,strncmp比较num两个字符串中的大多数字符,因此num == 0,它比较无,因此找不到差异,因此它返回0.

  • @nowgainsnowpains:包含零个字符的字符串与包含零个字符的另一个字符串相同. (3认同)
  • @nowgainsnowpains虽然从`strcmp`返回0意味着字符串相等,但这不适用于`strncmp`.对于该函数,返回0表示第一个"n"字符的子字符串相等.有效地为'n`传递零意味着比较两个空字符串,它们确实彼此相等. (3认同)