两个strlen()函数相减的工作方式

时间:2018-08-29 17:03:20

标签: c

为什么较短的字符串("paid")被该程序打印出来?

#include <stdio.h>
int main()
{
    char s[] = "paid", t[] = "paviDboss";
    if ((strlen(s) - strlen(t)) > 0)
        printf("%s\n", s);
    else
        printf("%s\n", t);
}

1 个答案:

答案 0 :(得分:6)

strlen的返回类型为size_t,这是无符号类型。减法的结果也是size_t,因此只能是正数。

只需使用

if(strlen(s) > strlen(t))