#include <conio.h>
#include <stdio.h>
#include <malloc.h>
#include <string.h>
char **vvod(int);
int *udalenie(char **,int);
void main()
{
char **txtmain;
int n;
printf("vvedite kolishestvo strok\n");
scanf("%d",&n);
txtmain=vvod(n);
udalenie(txtmain,n);
getch();
}
////////////////////////////////////////////////////////////////////////////////
char **vvod(int n)
{
char **txt;
int i;
txt=(char **)calloc(n,sizeof(char *));
for(i=0;i<n;i++)
{
*(txt+i)=(char *)calloc(70,sizeof(char));
}
puts("vvedite text\n");
for(i=0;i<n;i++)
{
gets(*(txt+i));
}
return txt;
}
////////////////////////////////////////////////////////////////////////////////
int *udalenie(char **txt,int n)
{
int i,k,t;
char m;
printf("vvedite nomer stroki");
scanf("%d",&t);
printf("vveditew simvol dl9 udaleni9");
scanf("%c",&m);
for(i=k=0;*(*(txt+t)+i) !=0;i++)
{
if(*(*(txt+t)+i)!=m)
*(*(txt+t)+k++)=*(*(txt+t)+i);
*(*(txt+t)+i)=0;
}
//printf("%s",*(txt+t));
puts(*(txt+t));
return 0;
}
(C)Удаление симоволов из массива строк
Код:
В принципе все должно работать сбой начинается с
Код:
scanf("%d%s",&t,&c);
Код:
for(i=k=0;*(*(txt+t)+i) !=0;i++)
{
if(*(*(txt+t)+i)!=m)
*(*(txt+t)+k++)=*(*(txt+t)+i);
*(*(txt+t)+i)=0;
}
{
if(*(*(txt+t)+i)!=m)
*(*(txt+t)+k++)=*(*(txt+t)+i);
*(*(txt+t)+i)=0;
}
т.к. знаю что он рабочий, подскажите в чем проблема?
Код:
scanf("%d%s",&t,&c);
А где "с" определяется?
И зачем тут считывается строка ("%s"), если требуется прочитать символ?
Код:
А где "с" определяется?
И зачем тут считывается строка ("%s"), если требуется прочитать символ?
И зачем тут считывается строка ("%s"), если требуется прочитать символ?
Ну насчет "с" я просто не дописал в представленом тут коде, а вот с символом и вправду).
ТАк подправил код( в начале не совсем правильно анписал), однако при подстановке %с происходит та же байда(