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 }
思路就是 找到了就删除 用后面的覆盖前面的。 我也不知道第一种为什么出错。
查看更多关于1161: 零起点学算法68——删除字符(有问题)(已AC)的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did238295