This commit is contained in:
2025-10-11 07:22:07 -04:00
parent 02bc91917c
commit 21777685ca

54
stridx.c Normal file
View File

@@ -0,0 +1,54 @@
#include <stdio.h>
int mystr_idx(char *str, char *substr) {
// Если подстрока пустая, возвращаем 0
if (substr == NULL || *substr == '\0') {
return 0;
}
// Если строка пустая, возвращаем -1
if (str == NULL || *str == '\0') {
return -1;
}
int i = 0;
while (str[i] != '\0') {
int j = 0;
// Проверяем, совпадает ли подстрока начиная с позиции i
while (substr[j] != '\0' && str[i + j] != '\0' && str[i + j] == substr[j]) {
j++;
}
// Если дошли до конца подстроки, значит нашли полное совпадение
if (substr[j] == '\0') {
return i;
}
i++;
}
return -1;
}
// Функция для тестирования
void test_mystr_idx() {
printf("mystr_idx(\"helloworld\", \"world\") = %d (expected: 5)\n",
mystr_idx("helloworld", "world"));
printf("mystr_idx(\"helloworld\", \"helloworld\") = %d (expected: 0)\n",
mystr_idx("helloworld", "helloworld"));
printf("mystr_idx(\"helloworld\", \"foo\") = %d (expected: -1)\n",
mystr_idx("helloworld", "foo"));
printf("mystr_idx(\"helloworld\", \"hello\") = %d (expected: 0)\n",
mystr_idx("helloworld", "hello"));
printf("mystr_idx(\"helloworld\", \"low\") = %d (expected: 3)\n",
mystr_idx("helloworld", "low"));
printf("mystr_idx(\"\", \"test\") = %d (expected: -1)\n",
mystr_idx("", "test"));
printf("mystr_idx(\"test\", \"\") = %d (expected: 0)\n",
mystr_idx("test", ""));
}
int main() {
test_mystr_idx();
return 0;
}