#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char* replaceCharsInRange(char* original, int start, int end, const char* replacement) {
if (original == NULL || replacement == NULL) return NULL;
int len_original = strlen(original);
if (start < 0 || end >= len_original || start > end) {
printf("Invalid range for replacement.\n");
return original;
}
int len_replacement = strlen(replacement);
int new_len = len_original + len_replacement - (end - start + 1);
char* new_str = (char*)malloc(new_len + 1);
if (new_str == NULL) {
printf("Memory allocation failed.\n");
return original;
}
strncpy(new_str, original, start);
new_str[start] = '\0';
strcat(new_str, replacement);
strcat(new_str, &original[end + 1]);
return new_str;
}
int main() {
char originalStr[] = "HelloddsadWorld!";
char* replacement = "ABCD";
char* modifiedStr = replaceCharsInRange(originalStr, 5, 8, replacement);
if (modifiedStr) {
printf("Original: %s\n", originalStr);
printf("Modified: %s\n", modifiedStr);
free(modifiedStr);
}
return 0;
}