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 }

 

你可能感兴趣的:(删除)