写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。

例如:输入:ABCDE

A

输出:1

错误代码如下:

#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
int count=;
char last;
getline(cin,str);
scanf("%c",&last);
for(int i=;i<str.size();i++)
{
if((last>=''&&last<='')||(last==' '))
if(last==str[i])
count++;
else if((last>='a')&&(last<='z'))
if(last==str[i]||last==str[i]+('a'-'A'))
count++;
else if((last>='A')&&(last<='Z'))
if(last==str[i]||last==str[i]-('a'-'A'))
count++;
}
cout<<count<<endl;
return ;
}

正确代码如下:

#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
int count=;
char last;
getline(cin,str);
scanf("%c",&last);
for(int i=;i<str.size();i++)
{
if((last>=''&&last<='')||(last==' '))
if(last==str[i])
count++;
if((last>='a')&&(last<='z'))
if(last==str[i]||last==str[i]+('a'-'A'))
count++;
if((last>='A')&&(last<='Z'))
if(last==str[i]||last==str[i]-('a'-'A'))
count++;
}
cout<<count<<endl;
return ;
}

可见,对比正确代码和错误代码,不同之处只有for循环内部的分支选择,为什么此处else if用法是错误的呢?

经过调试,发现错误代码中满足第一个if的可以进入,满足后边两个else if的均无法进入执行,望高手解答!!!

随机推荐

  1. Scrapy中的Request和日志分析

    Scrapy.http.Request 自动去重,根据url的哈希值,进行去重 属性 meta(dict)  在不同的请求之间传递数据,dict priority(int)  此请求的优先级(默认为0 ...

  2. idea代码模板配置

    1. 在settings中配置 配置快捷键和模板内容 输入syso然后按enter键就会自动生成代码

  3. juc-2-原子变量与CAS算法

      i++的原子性问题 例子   int i=10;           i++; 结果   i=10   分析过程                    在计算机 底层 会有生成一个临时变量 tem ...

  4. day_92_11_14flask的启动和orm,反向生成model

    一.自定义命令. 在flask中也可以将应用改写成可以使用命令的形式,需要用到模块: pip install flask-script 使用关键字manage使得其能使用终端启动: from flas ...

  5. LeetCode 1243 数组变换

    地址 https://leetcode-cn.com/contest/biweekly-contest-12/problems/array-transformation/ 首先,给你一个初始数组 ar ...

  6. 剑指Offer-30.连续子数组的最大和(C++/Java)

    题目: HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向量中 ...

  7. Python连载52-SOCKET编程示例

    一.UDP编程 1.客户端Client:发起访问的一方. 2.服务器端 3.server段编程 (1)建立socket,socket是负责具体通信的一个实例 (2)绑定,为创建的socket指派固定的 ...

  8. Java连载50-import导入、访问控制权限修饰符

    一.import 1.import语句用来完成导入其他类,同一个包下的类不需要再导入 不在同一个包下需要手动导入. 2.import语法格式 import 类名: import 包名.*; //imp ...

  9. Python爬虫教程-实现百度翻译

    使用python爬虫实现百度翻译功能python爬虫实现百度翻译: python解释器[模拟浏览器],发送[post请求],传入待[翻译的内容]作为参数,获取[百度翻译的结果] 通过开发者工具,获取发 ...

  10. 最近的项目系之2——core3.0整合Autofac

    1.前言 core3.0与之前版本相比,有一些brokenchanges,那周边一些配套组件往往也难逃brokenchanges,Autofac也不例外.这里重点关注core整合Autofac,与之前 ...