Онлайн компилятор C

#include <stdio.h> int main() { char a[1001] = {0}, b[1001] = {0}; scanf("%s%s", a, b); int i = 0; while (a[i] != '\0' && b[i] != '\0' && a[i] == b[i]) { i++; } if (a[i] == '\0' && b[i] == '\0') { printf("%d", -1); } else printf("%d", i); return 0; }
这段代码比较两个字符串,找到它们第一个不同字符的位置(从0开始计数)。如果两个字符串完全相同,则输出-1。

- 你的代码只比较了字符串中较短的那个长度,因为循环条件 `a[i] != '\0' && b[i] != '\0'` 会在其中一个字符串结束时停止。但题目可能要求即使一个字符串是另一个的前缀,也要继续比较剩余部分。
- 当两个字符串完全相同(即同时到达结尾)时,你输出了-1。但题目可能要求在这种情况下输出两个字符串的长度(即它们共同的长度),而不是-1。请仔细确认题目要求。