void insert_char(char *s, char c, int pos) { int s_len, i; char *new_s; s_len = strlen(s); new_s = (char*)malloc(sizeof(char) * (s_len + 1)); strncpy(old_s, s, s_len); new_s[s_len] = '\0'; if (pos < s_len) { i = pos; new_s[i] = c; for (i++; i <= s_len; i++) { new_s[i] = s[i-1]; } s[i] = '\0'; } else { sprintf(new_s, "%s%c", s, c); } free(s); s = new_s; }