#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char* maskRange(const char* input, size_t start, size_t end) {
size_t len = strlen(input);
if (start >= len)
return strdup(input); // nothing to mask
if (end > len)
end = len;
char* result = strdup(input); // allocate modifiable copy
if (!result)
return NULL;
for (size_t i = start; i < end; i++) {
result[i] = '*';
}
return result;
}
int main(void) {
char* masked1 = maskRange("1234567899990000", 0, 12);
char* masked2 = maskRange("john.doe@example.com", 1, 8);
printf("%s\n", masked1);
printf("%s\n", masked2);
free(masked1);
free(masked2);
return 0;
}
/*
run:
************0000
j*******@example.com
*/