Передача указателя на строку в функцию - C (СИ)

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

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

Нужно написать функцию, которая бы удаляла из строки "все вхождения заданного символа в эту строку". Компилятор выдает ошибку:

passing 'char (*)[256]' as argument 1 of 'modify(char *, int, const char *)'

Как исправить код ниже?
#include <stdio.h>
#include <string.h>
using namespace std;
 
void modify ( char* str, int length, const char* c ){
    for ( int i = 0; i < (length - 1); ++i )
    {
        if ( str[i] == *c )
        {
            for (int j = i + 1; j < (length - 1); ++j)
            {
                str[i] = str[j];
            }
        }
    }
}
 
int main (int argc, char** argv) {
char str[256] = "";
char c;
printf( "\nInput string: " );
fgets( str, 256, stdin );
printf( "\nInput symbol: " );
scanf( "%s", &c );
modify ( &str, strlen (str), &c);
printf ( "Modified string:\t %s\n", str );
return 0;
}

Решение задачи: «Передача указателя на строку в функцию»

textual
Листинг программы
modify (str, strlen (str), &c);

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


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

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

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