#include <cstdio>
#include <cstring> // cstring 函数
using namespace std;
int main()
{
char a[100], b[100];
fgets(a, 100, stdin);
fgets(b, 100, stdin);
if (a[strlen(a) - 1] == '\n') a[strlen(a) - 1] = 0;
if (b[strlen(b) - 1] == '\n') a[strlen(b) - 1] = 0; // 这里代码写错了。。。。
// for(int i = 0; a[i]; i++)
// if (a[i] >= 'A' && a[i] <= 'Z') {
// // cout << "a[i] = " << a[i] << endl;
// // 因为 a[i] 本身是char 加上 32 赋值操作还是赋值给 char 所以输出的还是 char。
// a[i] += 32;
// // cout << "a[i] = " << a[i] << endl;
// }
for (int i = 0; a[i]; i ++ )
if (a[i] >= 'A' && a[i] <= 'Z')
a[i] += 32;
// for(int i = 0; b[i]; i++)
// if (b[i] >= 'A' && b[i] <= 'Z')
// b[i] += 32;
for (int i = 0; b[i]; i ++ )
if (b[i] >= 'A' && b[i] <= 'Z')
b[i] += 32;
int t = strcmp(a, b);
// cout << t << endl;
if (t == 0) puts("=");
else if (t < 0) puts("<");
else puts(">");
return 0;
}
这段代码来自课程: 768. 忽略大小写比较字符串大小 这道题的答案。
https://www.acwing.com/problem/content/770/
为什么我调试的时候是正确的。提交答案返回的是错误的呢。。。
我是对了好几遍答案了 这个是啥问题呀。???
这个是调试代码的截图:
这个是我提交答案的截图;
我也好几次这样,同样不知道为啥……
还是打周赛的时候
有个小伙伴说的是 调试的时候 提交的测试数据 有 EOF 但是 我不太懂 是不是这个的影响。
我想表达的意思是错误的代码 应该在 调试 和 提交 时,获得到的结果是一致的。都不对。
同样的测试数据,为啥 strcmp 函数 拿到的结果前后是不一致的呢? 这个是bug么?
重点关注:调试代码输出的返回结果是 0 但是 正确应该是 -10 吧。 所以 到底是哪里的问题- - ,错误代码能比较对?