如何使用assert来测试字符串

jon*_*hua 5 c assert

我正在尝试测试strcat()我自己编写的函数.我没有打印输出并手动逐行检查,而是决定使用assert.h中的assert.问题是即使输出看起来完全正常,断言也会显示错误.以下是我的代码:

void mystrcat_test()
{
    char str[BUFSIZ];
    assert(strcmp(str, ""));
    mystrcat(str, "hello");
    assert(strcmo(str, "hello"));
}
Run Code Online (Sandbox Code Playgroud)

Vij*_*hew 9

strcmp如果两个字符串相同则返回0.assert取0(false)表示测试失败并报告错误.所以测试应该是:

assert(strcmp(str, "") == 0);
Run Code Online (Sandbox Code Playgroud)


Pau*_*l R 6

strcmp 当字符串匹配时返回0,因此您的测试需要反转,例如

assert(strcmp(str, "hello") == 0);