1161: 零起點學算法68——刪除字符
Time Limit: 1 Sec Memory Limit: 64 MB 64bit IO Format: %lldSubmitted: 1412 Accepted: 479
[Submit][Status][Web Board]
Description
從鍵盤輸入任意一個字符串和一個字符,要求從該字符串中刪除所有該字符。
Input
輸入有多組測試數據。
每組兩行,第一行是字符串(字符串至少還有一個字符,不多於100個),第二行是一個字符
Output
每組輸出一行,刪除了所有應刪除字符后的字符串
Sample Input 
ABCDE
E
ASD Dfg fhd
D
Sample Output
ABCD
AS fg fhd
Source
1 #include<stdio.h> 2 #include<string.h> 3 int main(){ 4 char ch1[100],ch2[100]; 5 while(gets(ch1)!=NULL){ 6 char c; 7 scanf("%c",&c); 8 getchar(); 9 int j=0; 10 for(int i=0;ch1[i]!='\0';i++){ 11 if(ch1[i]!=c){ 12 ch2[j++]=ch1[i]; 13 } 14 } 15 16 puts(ch2); 17 } 18 return 0; 19 }
//AC代碼!
1 #include<stdio.h> 2 #include<string.h> 3 int main(){ 4 char ch1[100]; 5 while(gets(ch1)!=NULL){ 6 char c; 7 scanf("%c",&c); 8 getchar(); 9 for(int i=0;ch1[i]!='\0';i++){ 10 if(ch1[i]==c){ 11 for(int j=i;ch1[j]!='\0';j++){ 12 ch1[j]=ch1[j+1]; 13 } 14 i--; 15 } 16 } 17 18 puts(ch1); 19 } 20 return 0; 21 }
思路就是 找到了就刪除 用后面的覆蓋前面的。 我也不知道第一種為什么出錯。