Удалить все вхождения символа в строку - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Задача такая. С клавиатуры вводится строка и символ. Нужно удалить все вхождения символа в строку, результат записать в новую строку. Вт чего не понимаю. внес в отдельную функцию данный код, когда передаю параметры из основной программы и вывожу в функции результаты-то все нормалльно. но в осовной программе результаты не тображаются.
int remove_ch(char *arr, char ch, char *str_res, int res_len)
{
         char *old = arr;
         int k = 0;
 
    while (*arr != '\0')
    {
        if (*arr != ch)
           res_len++;
        arr++;
    }

    str_res =(char*) malloc(res_len*sizeof(char));
    if(!str_res)
    {
        printf("ERROR");
        return -1;
    }
    
    for(int i = 0; i < strlen(old); i++)
    {
        if(*(old+i) != ch)
        {
            *(str_res+k) = *(old+i);
            k++;
        }      
    }
    *(str_res+res_len) = '\0';
    printf("\nstr3: (%d)   <%s>\n", res_len, str_res);
    return res_len;
}
P.S. параметры функции не менять(т.е.типы параметов)

Решение задачи: «Удалить все вхождения символа в строку»

textual
Листинг программы
int remove_ch(char *arr, char ch, char **str_res, int res_len)
{
    // ...
    *str_res =(char*) malloc(res_len*sizeof(char));
    // ..
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.6 из 5
Похожие ответы