Я пытаюсь добавить символ в определенной позиции.Я создал новую функцию, выделил память для еще одного символа, сохранил символы после позиции, затем добавил мой символ в определенной позиции, и теперь я не знаю, как стереть символы после этой позиции, чтобы объединить сохраненную строку.Любое решение?
Вот начало моей функции:
void appendCharact(char *source, char carac, int position) {
source = realloc(source, strlen(source) * sizeof(char) + 1); //Get enough memory
char *temp = source.substr(position); //Save characters after my position
source[position] = carac; //Add the character
}
РЕДАКТИРОВАТЬ: я пытаюсь реализовать другое "варварское" решение, в режиме отладки я вижу, что япримерно моя новая строка, но, похоже, я не могу стереть старый указатель ...
void appendCharact(char *source, char carac, int position) {
char *temp = (char *)malloc((strlen(source) + 2) * sizeof(char));
int i;
for(i = 0; i < position; i++) {
temp[i] = source[i];
}
temp[position] = carac;
for (i = position; i < strlen(source); i++) {
temp[i + 1] = source[i];
}
temp[strlen(temp) + 1] = '\0';
free(source);
source = temp;
}