else if 使用注意
写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。
例如:输入: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的均无法进入执行,望高手解答!!!
随机推荐
- linux 软件包的组成部分
软件包的组成部分 1. 二进制文件 比如:/bin, /sbin & /usr/bin, /usr/sbin & /usr/local/bin, /usr/local/sbin 2.库 ...
- AcWing 77. 翻转单词顺序
习题地址 https://www.acwing.com/problem/content/description/73/ 题目描述输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变. 为简单 ...
- webdriver浏览器版本驱动对应以及下载
对于webdriver和各个浏览器的版本的对应,我最近发现浏览器驱动的对应在selenium库的源码里都有提及,路径是:python>site-packages>selenium>w ...
- intellij idea从git检出代码并建立工程
1. 打开intellij idea,点击configure,settings 2. 左侧展开Version Control,点击Git,点击下图中红框中按钮 3. 在弹出窗口中找到git.exe,点 ...
- [java 基础]反射入门
原文 概况 使用java的反射,可以让我们检查(或者修改)类,接口,字段,方法的特性.当你在编译期不知道他们的名字的时候非常有用. 除此之外,可以使用反射来创建实例,调用方法或者get/set 字段值 ...
- django--通过jwt获取用户信息的两种方式
HTTP请求是无状态的,我们通常会使用cookie或session对其进行状态保持,cookie存储在客户端,容易被用户误删,安全性不高,session存储在服务端,在服务器集群情况下需要解决sess ...
- Java13 闪亮来袭,你是否还停留在 Java8
近期 Java 界好消息频传.先是 Java 13 发布,接着 Eclipse 也发布了新版本表示支持新版本的 Java 特性. 本文介绍了 Java 13 的新特性并展示了相关的示例. 2019 年 ...
- [06]ASP.NET Core中的进程内(InProcess)托管
ASP.NET Core 进程内(InProcess)托管 本文作者:梁桐铭- 微软最有价值专家(Microsoft MVP) 文章会随着版本进行更新,关注我获取最新版本 本文出自<从零开始学 ...
- Do Deep Nets Really Need to be Deep?
url: https://arxiv.org/pdf/1312.6184.pdf year: NIPS2014 浅网络学习深网络的函数表示, 训练方法就是使用深网络的 logits(softmax i ...
- 转 googlenet论文解读
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/u014061630/article/det ...