做苗木网站哪个公司好,高端的金融行业网站开发,大宗商品平台,学习网站建设用例生成 # 任务描述 作为一个高级c程序员#xff0c;需要完成下列功能的gtest测试用例
# 功能描述 给定两个数字型字符串s1和s2,求和#xff0c;返回值也是字符串
# 接口举例 调用strAdd(123, 132),输出“255”
# 输出要求 - 入参为空串、nu…用例生成 # 任务描述 作为一个高级c程序员需要完成下列功能的gtest测试用例
# 功能描述 给定两个数字型字符串s1和s2,求和返回值也是字符串
# 接口举例 调用strAdd(123, 132),输出“255”
# 输出要求 - 入参为空串、null、非正整数数字的用例抛非法入参异常 - 补充入参为0开头的数字字符串用例 - 每个测试case一个测试函数 - 每条用例都需要场景描述
代码生成 # 任务描述 作为一个高级c程序员需要完成下列功能的代码实现
# 功能说明 给定两个数字字符串s1和s2求和返回值也是字符串。
# 接口举例 例如输入strAdd(123,132)输出255 # 输出要求 - 使用单个字符转整形加法实现 - 请去除输出结果开头的零 - 请增加注释 - 增加入参检查null、空字符串入参、非正整数字符串入参抛出非法入参异常 - 重申一下需要使用c代码 代码修复 ## 你是个资深c程序员请帮忙修复被测代码
## 被测代码 c char* strAdd(char* s1, char* s2) { if (s1 NULL || s2 NULL) { printf(Invalid input: One or both of the strings are null.\n); return NULL; } int i 0, j 0; int len1 strlen(s1), len2 strlen(s2); int len len1 len2; char* result (char*)malloc(len 2); // Add extra space for carry and null terminator int carry 0; while (i len1 || j len2) { int x i len1 ? (isdigit(s1[i]) ? (s1[i] - 0) : 0) : 0; int y j len2 ? (isdigit(s2[j]) ? (s2[j] - 0) : 0) : 0; int sum x y carry; result[len - 1 - i - j] sum % 10 0; carry sum / 10; i; j; } if (carry 0) { result[len - i - j - 1] carry 0; result[len - i - j] \0; } else { result[len - i - j - 1] \0; } return result; }
## 不通过测试用例 gtest TEST(StrAddTest, NormalInput) { EXPECT_EQ(1245, strAdd(1234, 12)); EXPECT_EQ(9999, strAdd(1234, 8765)); }