c++

计算字符个数

http://www.nowcoder.com/questionTerminal/a35ce98431874e3a820dbe4b2d0508b1

#include<iostream>
#include<string>
using namespace std;
//!!!不区分大小写,所以进行ascll码+32一样也++
int main()
{
    string str;
    char s;
    int count=0;
    cin>>str;
    cin>>s;
    for(int i=0;i<str.size();i++)
    {
        if(str[i]==s)
        {
            count++;
        }  
        else if(str[i]+32==s)
        {
            count++;
        } 
    }
    cout<<count<<endl;
 return 0;   

}
全部评论
如果输入的字符串中有数字,数字的ascII码是要比英文字母小的,如果数字的ascII码加32之后可能就变成了英文字母,恰好你的目标字符是这个英文字母,就会出现误判。
3 回复 分享
发布于 2022-03-17 16:11
应该同时判定大小写的
3 回复 分享
发布于 2020-08-28 18:49
这个少逻辑,得加上-32的情况.各位注意看了哈。我测了半天不对才发现。
2 回复 分享
发布于 2021-02-26 17:34
测试字符串:"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"测试字符:'A',然后你看输出什么?
1 回复 分享
发布于 2022-03-02 16:35
str[i]+-32==s
1 回复 分享
发布于 2021-01-23 16:40
他的题库输入字符都是小写所以通过了,为了逻辑完整性我改成如下代码: for(int i = 0; i < str.size();i++) { if(str[i] == ch||str[i]+32 == ch||str[i]-32 == ch) j++; }
1 回复 分享
发布于 2020-08-19 00:18
使用cin,到空格就断了,应该用getline
26 回复 分享
发布于 2021-02-27 11:02
有考虑 到 '1' + 32 = 'Q',如果判断字符集 有 大量1的话,检测字符为1, 'Q' - 32 == '1',count++ 最后就会报错。类比 '0' 到 ‘9’ 都会有相同情况
11 回复 分享
发布于 2021-11-17 00:49
1.cin不能读空格,可以用getline代替 2.判断输入是否为字母 3.若为字母,考虑±32~
8 回复 分享
发布于 2021-12-11 14:06
由于无法确定字符串中的是大写,还是字符中是大写,所以需要+32判断,和-32判断
3 回复 分享
发布于 2020-04-24 15:19
除了判断相差32,还需判断是否是大写或小写字母
1 回复 分享
发布于 2023-04-25 23:50 四川
这么多错误还拿出来?
1 回复 分享
发布于 2023-04-06 14:17 浙江
显示运行时间过长啊,代码太长了?难得见一个简单明了的
点赞 回复 分享
发布于 2023-05-27 18:35 广东
count++和++count输出时有没有要求,输出后者对不对啊
点赞 回复 分享
发布于 2022-09-05 15:27 吉林
个人觉得有缺陷,因为无法判断查验的字符是大写还是小写。前面应该加相应判断语句吧
点赞 回复 分享
发布于 2022-08-24 20:22 北京
这种解法是错误的,如果字符给你一个小写a,你这结果就是错误的 因为你只算了加32,没有算减掉32,我不知道是我考虑的多 还是这个牛客的所有测试case就是题设给出来的这一个,而不是普遍通用的case
点赞 回复 分享
发布于 2022-06-10 21:57
受教了 但是应该即判断大写又判断小写吧 所以应该有判断减32的
点赞 回复 分享
发布于 2022-03-23 17:08
空格判断不了
点赞 回复 分享
发布于 2022-02-18 17:13
有问题
点赞 回复 分享
发布于 2021-12-13 10:01
思维不严谨,假如 str[i]是'a', s是'A',但是 'a' + 32 != 'A'。 按你的代码就会少统计一次。要么加上 str[i] - 32 == s; 要么使用标准函数toupper或tolower。
点赞 回复 分享
发布于 2021-10-20 17:05

相关推荐

白火同学:能。我当初应届沟通了1200,收简历50,面试10左右吧,加油投吧
点赞 评论 收藏
分享
kkk22:刘潇同学 你的简历挡了个寂寞
点赞 评论 收藏
分享
评论
51
6
分享

创作者周榜

更多
牛客网
牛客企业服务