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

#include <stdio.h> int my_length(char c[]) { int len = 0; int i = 0; while (c[i] != '\0') { len++; i++; } return len; } int is_same(char *s1, char *s2) { int i = 0; int len1 = my_length(s1); int len2 = my_length(s2); while (s1[i] != '\0' && s2[i] != '\0') { if (s1[i] != s2[i]) { return i; } i++; } if (len1 == len2) { return -1; } if (len1 < len2) { return len1; } if (len1 > len2) { return len2; } return 0; } int main() { char a1[1001], a2[1001]; int i1 = 0, i2 = 0; char b; while (i1 < 1000 && (b = getchar()) != '\n') { a1[i1] = b; i1++; } a1[i1] = '\0'; while (i2 < 1000 && (b = getchar()) != '\n') { a2[i2] = b; i2++; } a2[i2] = '\0'; printf("%d", is_same(a1, a2)); return 0; }
这段代码实现了两个字符串的比较功能。它从标准输入读取两行字符串,然后比较它们是否相同,并返回一个整数值。

代码的主要逻辑是:
- `my_length` 函数计算字符串长度
- `is_same` 函数比较两个字符串,返回第一个不同字符的位置(从0开始),如果完全相同则返回-1,如果一个字符串是另一个的前缀则返回较短字符串的长度

- 在 `is_same` 函数中,当两个字符串长度不同时,返回值的设计可能和你预期的不同。注意它返回的是较短字符串的长度,而不是第一个不同字符的位置。
- 主函数中读取字符串的方式只读取到换行符为止,但题目可能要求处理空格或其他情况,需要确认输入格式。