字符串中删除一部分字母
这个只能实现删除指定字母如何实现删除指定字符串呢
#include <stdio.h>
#include <stdlib.h>
int main()
{
char array;
gets(array); //输入字符串
char change;
scanf("%c",&change); //输入指定字母
int i,N;
N=strlen(array);
for(i=0;i<N;i++)
{
if(array!=change)
printf("%c",array); //在字符串中删除指定字母
}
return 0;
}
array = '\0' // 删除字符串 array 本帖最后由 心驰神往 于 2021-1-29 14:39 编辑
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char array;
gets(array); //输入字符串
/*char change;
scanf("%c",&change); //输入指定字母*/
char change;
gets(change);
int i,N;
N=strlen(array);
for(i=0;i<N;i++)
{
if(array!=change)
printf("%c",array); //在字符串中删除指定字符串
}
return 0;
}
运行结果:
qwerewwqr
qwe
rewwqr
--------------------------------
Process exited after 4.953 seconds with return value 0
请按任意键继续. . .
心驰神往 发表于 2021-1-29 14:38
运行结果:
QAQ 这个测试案例就不对了这还能改吗
qwwewewwqw
qw
wewewwqw 丸子酱ovo 发表于 2021-1-29 15:50
QAQ 这个测试案例就不对了这还能改吗
qwwewewwqw
你想把后面那个qw也去了? 丸子酱ovo 发表于 2021-1-29 15:50
QAQ 这个测试案例就不对了这还能改吗
qwwewewwqw
上面那个确实有问题
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
void delet(char *s1,char *s2);
int main()
{
char s1,s2;
printf("请输入一个字符串\n");
scanf("%s",s1);
printf("请输入一个要删除的子串\n");
scanf("%s",s2);
delet(s1,s2);
}
void delet(char *s1,char *s2){
char *p1,*p2,result={'\0'};
p2=s1;
while((p1=strstr(s1,s2))!=NULL)
{
strncat(result,s1,p1-p2);
strcpy(s1,p1+strlen(s2));
p2=s1;
}
strcat(result,s1);
printf("%s\n",result);
}
这个可以,出自https://blog.csdn.net/z2541498852/article/details/78841167
运行结果:
请输入一个字符串
qwerdf1234qw
请输入一个要删除的子串
qw
erdf1234
--------------------------------
Process exited after 15.69 seconds with return value 0
请按任意键继续. . .
#include "stdio.h"
#include "string.h"
int main()
{
int i=0,x=0;
char *p=NULL,*t=NULL,s,d;
printf("输入字符串:");
gets(s);
printf("输入要删除的字符串:");
gets(d);
if( (p=strstr(s,d)) == NULL)
{
printf("\n\n字符串1: %s\n中没有找到\n字符串2: %s\n",s,d);
return 0;
}
while((p=strstr(s,d)) != NULL)
{
t=p+strlen(d);
*p='\0';
strcat(s,t);
x++;
}
printf("共删除%d处\n%s\n",x,s);
}
页:
[1]