首页 > 代码库 > c之PAT刷题---删除字符串中的特定子串
c之PAT刷题---删除字符串中的特定子串
改了好久还是没有全过,等明天再看吧!好好休息,明天继续。
#include<stdio.h>
#include<string.h>char *delete(char str1[80],char str2[80]){
int len1,len2,l;//l记录出现字符相同的起始位置
len1=strlen(str1);
len2=strlen(str2);
for(int i=0;str1[i]!=‘\0‘;i++){
if(str1[i]==str2[0]){
l=i;//记下相同字符出现的位置
int num=0;
for(int k=0;k<len2;k++){
if(str1[l]==str2[k]){
num++;
l++;
}
} //判断是不是完全相同
//接下来,从i开始,使所有的字符都向前移动三位;
if(num==len2){//如果符合子串,那么把后面的字符往前推进,挤掉子串
for(int k=i;str1[k]!=‘\0‘;k++)
str1[k]=str1[k+num];
}
}
}
return str1[80];
}
int main(){
char str1[80];
char str2[80];
gets(str1);
gets(str2);//获取字符串
int fact=1;
while(fact){
for(int j=0;str1[j]!=‘\0‘;j++){
if(str1[j]==str2[0]){
delete(str1,str2);//如果与子串的第一个字符相同,调用删除函数
fact=0;
}
}
if(fact==0)
puts(str1);
else{
for(int j=0;str1[j]!=‘\0‘;j++){
if(str1[j]==str2[0]){
delete(str1,str2);//如果与子串的第一个字符相同,调用删除函数
fact=0;
}
}
}
}
puts(str1);//输出操作后的子串
return 0;
}
c之PAT刷题---删除字符串中的特定子串
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。