因此,我制作了一个用于从字符串中删除字符的程序,如下所示:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* deleteChar(char* texto,int n,char del,int i,int j)
{
/*for(i=0,j=0;i<n;i++)
if(texto[i]!=del)
{
texto[j]=texto=i;
j=+1;
}
for(n-i;n-i<n;i--)
texto[n-i]=NULL;
return(texto);*/
if(i!=n)
{
if(texto[i]!=del)
{
texto[j]=texto[i];
j+=1;
}
i+=1;
texto=deleteChar(texto,n,del,i,j);
}
else
{
i=i-j;
for(n-i;n-i<n;i--)
texto[n-i]=NULL;
return(texto);
}
}
void main()
{
char del;
printf("Remover: \n");
scanf("%c",&del);
char* texto;
texto=(char*)calloc(0,sizeof(char));
printf("Texto: \n");
scanf("%s",texto);
int n=0;
n=strlen(texto);
/*char del;
scanf("%c",&del);*/
texto=deleteChar(texto,n,del,0,0);
printf("%s ",texto);
}
专注于
main()
,由于某种原因,如果在获取字符串后我scanf("%c",&del)
,程序会中断(甚至在获取del
输入之前),但是如果在这样做之后,它会发挥很大的作用。我不知道为什么。
最佳答案
问题是您在行中重新声明了del
:
char del;
scanf("%c",&del);
因此,只需除去
del
的第二个减速度。关于c - 因此,如果我在读取字符串之前使用scanf(“%c”,del),它可以工作,但之后不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50143550/