#include <stdio.h>

int string_length(char str[]) {
    int length = 0;
    while (str[length] != '\0') {
        length++;
    }
    return length;
}

void string_concatenate(char str1[], char str2[], char result[]) {
    int i = 0, j = 0;
    while (str1[i] != '\0') {
        result[j++] = str1[i++];
    }
    i = 0;
    while (str2[i] != '\0') {
        result[j++] = str2[i++];
    }
    result[j] = '\0';
}

int string_compare(char str1[], char str2[]) {
    int i = 0;
    while (str1[i] != '\0' && str2[i] != '\0') {
        if (str1[i] != str2[i]) {
            return (str1[i] < str2[i]) ? -1 : 1;
        }
        i++;
    }
    if (str1[i] == '\0' && str2[i] == '\0') {
        return 0;
    } else if (str1[i] == '\0') {
        return -1;
    } else {
        return 1;
    }
}

void string_insert(char str[], char substr[], int pos, char result[]) {
    int i = 0, j = 0, k = 0;
    int str_length = string_length(str);
    int substr_length = string_length(substr);

    while (i < pos && i < str_length) {
        result[j++] = str[i++];
    }
    while (substr[k] != '\0') {
        result[j++] = substr[k++];
    }
    while (i < str_length) {
        result[j++] = str[i++];
    }
    result[j] = '\0';
}

void string_delete(char str[], int pos, int length, char result[]) {
    int i = 0, j = 0;
    int str_length = string_length(str);

    while (i < pos && i < str_length) {
        result[j++] = str[i++];
    }
    i += length;
    while (i < str_length) {
        result[j++] = str[i++];
    }
    result[j] = '\0';
}

int main() {
    char str1[100], str2[100], result[200];
    int choice, pos, length;

    printf("Enter the first string: ");
    scanf("%99s", str1);
    printf("Enter the second string: ");
    scanf("%99s", str2);

    printf("\nChoose an operation:\n");
    printf("1. Length of the first string\n");
    printf("2. Concatenate strings\n");
    printf("3. Compare strings\n");
    printf("4. Insert second string into first string at position\n");
    printf("5. Delete substring from first string\n");
    printf("Enter your choice: ");
    scanf("%d", &choice);

    switch (choice) {
        case 1:
            printf("Length of the first string: %d\n", string_length(str1));
            break;
        case 2:
            string_concatenate(str1, str2, result);
            printf("Concatenated string: %s\n", result);
            break;
        case 3:
            printf("String comparison result: %d\n", string_compare(str1, str2));
            break;
        case 4:
            printf("Enter position to insert the second string: ");
            scanf("%d", &pos);
            string_insert(str1, str2, pos, result);
            printf("String after insertion: %s\n", result);
            break;
        case 5:
            printf("Enter position to start deletion: ");
            scanf("%d", &pos);
            printf("Enter length of substring to delete: ");
            scanf("%d", &length);
            string_delete(str1, pos, length, result);
            printf("String after deletion: %s\n", result);
            break;
        default:
            printf("Invalid choice.\n");
    }

    return 0;
}
