Мне нужно написать функцию, которую каждой n позиции присваивает пустой символ. Теперь у меня есть что-то подобное, но это не работает так, как я хочу)
void strEscape(char* string, int length,int param) {
int count = 0; // tried to count how many times , inserted ' '
for (int i = 1; i + count < length; i++) {
if (i%param==0) { // checking if reached n position
length++;
string = (char*)realloc(string, (length+1) * sizeof(char));
for (int j = length; j > i; j--) {
string[j] = string[j-1]; //swapping elements
}
string[i+count] = ' ';
string[length] = '\0';
count++;
}
}
}
Например, давайте возьмем, что я хочу поставить '' после 3 символов, поэтому param = 3;
И вот результаты, что у меня сейчас
Ввод-> Вывод:
abca-> ab c a
abcabca-> ab c ab c a
abcabcabca -> ab c ab c abb aa -> здесь что-то идет не так
И у меня есть (HEAP [Source.exe]: указан неверный адрес для RtlValidateHeap), если строка содержит 10 и более элементов