题目1049:字符串去特定字符——九度OJ

简介: 题目1049:字符串去特定字符 http://ac.jobdu.com/problem.php?pid=1049 时间限制:1 秒 内存限制:32 兆 题目描述: 输入字符串s和字符c,要求去掉s中所有的c字符,并输出结果。

题目1049:字符串去特定字符

http://ac.jobdu.com/problem.php?pid=1049

时间限制:1 秒 内存限制:32 兆

题目描述:

输入字符串s和字符c,要求去掉s中所有的c字符,并输出结果。

输入:

测试数据有多组,每组输入字符串s和字符c。

输出:

对于每组输入,输出去除c字符后的结果。

样例输入:
heallo
a
样例输出:
hello

关于这个题目,有几个地方要吐槽一下:

1、没有说明数据范围

2、输入输出没有明确的格式说明

下面是两个AC的代码,大家自己对比着看吧

代码一:

 1  #include <stdio.h>
 2     #include <string.h>
 3  
 4     int main()
 5     {
 6             char str[1000000],ch,ch1;
 7             int len,i;
 8             while (gets(str))
 9             {
10                     scanf("%c",&ch);
11                     len = strlen(str);
12                     for (i=0;i<len;i++)
13                     {
14                             if (str[i] != ch)
15                                     printf("%c",str[i]);
16                     }
17                     printf("\n");
18                     ch1 = getchar();
19             }
20             return 0;
21     }
View Code

代码二:

 1 #include<stdio.h>
 2   
 3 int  main()
 4 {
 5     char a[1000000],ch;
 6     int i;
 7     scanf("%s",a);
 8     getchar();
 9     while(scanf("%c",&ch)!=EOF)
10     {
11         getchar();
12         for(i=0;a[i]!='\0';i++)
13         {
14             if(a[i]!=ch) printf("%c",a[i]);
15         }
16         printf("\n");
17          
18         scanf("%s",a);
19         getchar();
20     }
21     return 0;
22 }
View Code

解析:

关于算法:投机取巧的做法是直接判断每一个字符是否题目不给输出的字符然后判断是否输出该字符。

关于输入输出格式的说明:

gets()是输入一整行。换行符不作为读取串的内容,读取的换行符被转换为‘\0’空字符,并由此来结束字符串。

scanf()利用%s是输入遇到空白符(空格、Tab或回车)时截止。

在输入字符数据(%c)时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。

例如:

scanf ( "%c%c%c" ,&a,&b,&c);
输入为: d e f
则把'd'赋予a, ' (空格)'赋予b,'e'赋予c。因为%c 只要求读入一个 字符,后面不需要用空格作为两个字符的间隔,因此把' '作为下一个字符送给b。
只有当输入为:def 时,才能把'd'赋于a,'e'赋予b,'f'赋予c。 如果在格式控制中加入空格作为间隔,
scanf ( "%c %c %c" ,&a,&b,&c);
则输入时各数据之间可加空格。
如果格式控制串中有非格式字符则输入时也要输入该非格式字符。
用%s来输入字符串的话,不接受回车符。
 
然后呢,这个题目就要慢慢试试看到底是字符串和字符同一行呢还是分作两行。另外,再试试看输出时每一组之间要不要回车。麻烦吧……
 
 
 
 
 
 
 
 
 
 
 
 
 

 

相关文章
|
1月前
|
索引
《华为机试》——查找两个字符串a,b中的最长公共子串
《华为机试》——查找两个字符串a,b中的最长公共子串
|
4月前
|
Java 测试技术 Python
每日一题《剑指offer》字符串篇之表示数值的字符串
每日一题《剑指offer》字符串篇之表示数值的字符串
28 0
每日一题《剑指offer》字符串篇之表示数值的字符串
|
4月前
|
Java
每日一题《剑指offer》字符串篇之字符串的排列
每日一题《剑指offer》字符串篇之字符串的排列
51 0
每日一题《剑指offer》字符串篇之字符串的排列
|
11月前
【leedcode】0003. 无重复字符最长子串
【leedcode】0003. 无重复字符最长子串
38 0
华为机试每日一练--第四题:字符串最后一个单词的长度
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
华为机试每日一练--第四题:字符串最后一个单词的长度
【牛客】字符集合
【牛客】字符集合
55 0
【牛客】字符集合
力扣刷题- 无重复字符的最长子串
力扣刷题- 无重复字符的最长子串
牛客网——牛牛的数组匹配
牛客网——牛牛的数组匹配
203 0
LeetCode每日一题——1624. 两个相同字符之间的最长子字符串
子字符串 是字符串中的一个连续字符序列。
65 0
|
索引
Leetcode每日一题——找到字符串中所有字母异位词
给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。
64 0