SDUT 1176 删除指定字符
我来写个超级水的题。下午突然想用一个别的法做。卡了一下午。
还有就是以后还得用Chrome来写。IE8太电梯了。
题目描述
从键盘输入一个字符串给str和一个字符给c,删除str中的所有字符c并输出删除后的字符串str。
输入
第一行是一个字符串;
第二行是一个字符。
第二行是一个字符。
输出
删除指定字符后的字符串。
示例输入
sdf$$$sdf$$ $
示例输出
sdfsdf
方法一:只要是那个字符,就不输出。
View Code
1 #include<stdio.h> 2 #include<string.h> 3 int main() 4 { 5 char str[100],c; 6 int i,j=0; 7 gets(str); 8 scanf("%c",&c); 9 for(i=0;i<strlen(str);i++) 10 if(str[i]!=c) 11 printf("%c",str[i]); 12 printf("\n"); 13 return 0; 14 }
方法二:需要最后加个‘\0’。
View Code
1 #include<stdio.h> 2 #include<string.h> 3 int main() 4 { 5 char str[100],c; 6 int i,j=0; 7 gets(str); 8 scanf("%c",&c); 9 for(i=0;(str[i]!='\0');i++) 10 if(str[i]!=c) 11 { 12 str[j++]=str[i]; 13 } 14 str[j]='\0'; 15 puts(str); 16 return 0; 17 }
方法三:就是卡了我一下午的方法,太电梯了。
View Code
1 #include<stdio.h> 2 #include<string.h> 3 int main() 4 { 5 char str[100],c; 6 int i,j=0; 7 gets(str); 8 scanf("%c",&c); 9 for(i=0;str[i]!='\0';i++) 10 { 11 if(str[i]==c) 12 { 13 for(j=i;j<strlen(str);j++) 14 { 15 str[j]=str[j+1]; 16 } 17 i--; 18 } 19 } 20 puts(str); 21 return 0; 22 }