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 }

 

posted @ 2012-05-29 21:58  时光旅行的懒猫  阅读(294)  评论(0编辑  收藏  举报