標籤:c語言
改了好久還是沒有全過,等明天再看吧!好好休息,明天繼續。
#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刷題---刪除字串中的特定子串