10-2. 刪除字符串中的子串(20)

/*
輸入2個字符串S1和S2,要求刪除字符串S1中出現的所有子串S2,即結果字符串中不能包含S2。 


 輸入格式: 


輸入在2行中分別給出不超過80個字符長度的、以回車結束的2個非空字符串,對應S1和S2。 


 輸出格式: 


在一行中輸出刪除字符串S1中出現的所有子串S2後的結果字符串。 
輸入樣例:Tomcat is a male ccatat
cat


輸出樣例:Tom is a male 


*/


#include <stdio.h>
#include <string.h>


int main()
{
	char *p;
	char s1[81],s2[81],temp[81]={0};
	gets(s1);
	gets(s2);
//	printf("%s\n",s1);
//	printf("%s\n",s2);
	
	while((p = strstr(s1,s2)) != NULL){	//指針指向s1中匹配s2的地方 
		*p = '\0';						//截掉s1指針後面的內容 
//		printf("***%s\n",p);
//		printf("***%s\n",s1);
//		printf("***%s\n",s2);
		strcat(temp,s1);				//在temp後面粘貼s1 
		strcat(temp,p+strlen(s2));		//把指針後移s2的長度,在temp後面粘貼指針所指向的數組 
	//	printf("%s\n",temp);
		strcpy(s1,temp);				//把temp內容賦給s1 
		temp[0]='\0';					//清空temp數組 
//		printf("%s\n",s1);		
	}


	printf("%s\n",s1);
	return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章