如题所述
第1个回答 推荐于2018-03-07
#include <stdio.h>
#include <malloc.h>
#include <string.h>
void deleteChar(char *s,char *c)
{
int slength= strlen(s);
int clength= strlen(c);
int* target = (int *)malloc(slength*sizeof(int));
for(int i=0;i<slength;i++)
{
target[i]=0;
}
for(i=0;i<slength;i++)
for(int j=0;j<clength;j++)
{
if(s[i]==c[j])
target[i]=1;
}
for(i=0;i<slength;i++)
printf("%d ",target[i]);
printf("\n");
for(i=0;i<slength;i++)
{
if(target[i]==1)
{
for(int j=i+1;j<slength;j++)
{
if(target[j]==0)
{
s[i]=s[j];
s[j]='\0';
target[j]=1;
break;
}
}
}
}
free(target);
}
void main()
{
char a[]="abcdef";
char b[]="bd";
deleteChar(a,b);
printf("%s\n",a);
}本回答被提问者和网友采纳
#include <malloc.h>
#include <string.h>
void deleteChar(char *s,char *c)
{
int slength= strlen(s);
int clength= strlen(c);
int* target = (int *)malloc(slength*sizeof(int));
for(int i=0;i<slength;i++)
{
target[i]=0;
}
for(i=0;i<slength;i++)
for(int j=0;j<clength;j++)
{
if(s[i]==c[j])
target[i]=1;
}
for(i=0;i<slength;i++)
printf("%d ",target[i]);
printf("\n");
for(i=0;i<slength;i++)
{
if(target[i]==1)
{
for(int j=i+1;j<slength;j++)
{
if(target[j]==0)
{
s[i]=s[j];
s[j]='\0';
target[j]=1;
break;
}
}
}
}
free(target);
}
void main()
{
char a[]="abcdef";
char b[]="bd";
deleteChar(a,b);
printf("%s\n",a);
}本回答被提问者和网友采纳
第2个回答 2012-08-14
假设数组S中的数据为abcd,数组c中的数据为ay。代码如下:
#include <iostream>
int main(int argc, char *argv[])
{
char s[]="abcd";
char c[]="ay";
for(int i=0;i<4;i++)
{
for(int j=0;j<2;j++)
{
if(s[i]==c[j])
{
for(int k=i;k<4;k++)
s[k]=s[k+1];
}
}
printf("%c",s[i]);
}
}
#include <iostream>
int main(int argc, char *argv[])
{
char s[]="abcd";
char c[]="ay";
for(int i=0;i<4;i++)
{
for(int j=0;j<2;j++)
{
if(s[i]==c[j])
{
for(int k=i;k<4;k++)
s[k]=s[k+1];
}
}
printf("%c",s[i]);
}
}