char* insert_char(char *s, char c, unsigned int pos) { int i; int s_len = strlen(s); if (pos <= s_len) { char *new_s = malloc(sizeof(char) * (s_len + 2)); new_s[s_len] = '\0'; for (i = 0; i < pos && i < s_len; i++) { new_s[i] = s[i]; } new_s[pos] = c; for (i = pos; i < s_len; i++) { new_s[i+1] = s[i]; } free(s); s = new_s; } return s; }