C++ strtol的边界条件测试技巧

   2024-10-07 6130
核心提示:在测试strtol函数的边界条件时,通常可以考虑以下几种情况:输入字符串为空字符串或只包含空格字符。输入字符串代表的数字小于LO

在测试strtol函数的边界条件时,通常可以考虑以下几种情况:

输入字符串为空字符串或只包含空格字符。输入字符串代表的数字小于LONG_MIN或大于LONG_MAX。输入字符串超过LONG_MAX或小于LONG_MIN的情况。输入字符串包含非数字字符或非法字符。输入字符串包含正负号。输入字符串包含前导空格或后导空格。

以下是一个简单的测试代码示例:

#include <iostream>#include <cstdlib>#include <climits>int main() {    const char *str = "12345";    char *endptr;    long num = strtol(str, &endptr, 10);    if ((num == LONG_MIN || num == LONG_MAX) && errno == ERANGE) {        std::cout << "Overflow or underflow detected" << std::endl;    } else if (*endptr != '\0' && *endptr != ' ') {        std::cout << "Invalid character found in input" << std::endl;    } else {        std::cout << "Parsed number: " << num << std::endl;    }    return 0;}

在此示例中,我们测试了数字范围是否在LONG_MIN和LONG_MAX之间,以及是否有非法字符和空格。您可以根据具体需求和情况扩展测试用例。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号