else if 使用注意
2024-10-18 23:11:15
写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。
例如:输入: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的均无法进入执行,望高手解答!!!
最新文章
- VS项目中使用Nuget还原包后编译生产还一直报错?
- 今天思考一个问题,PHP const和static的区别
- W3Help-兼容性-知识库
- netcore 控制台中文乱码
- GO语言练习:channel select 超时机制
- 探索javascript----我对渐变轮播图的理解
- SVG 参考手册
- 转:strcat与strcpy与strcmp与strlen
- PowerDesigner建立与数据库的连接,以便生成数据库和从数据库生成到PD中。
- Netty学习笔记(一):接收nodejs模拟表单上传的文件
- Oracle loop循环无法插入数据
- Ibatis动态(dynamic)查询
- pytest框架之命令行参数1
- Linq使用Group By
- java使用spark/spark-sql处理schema数据
- Xilinx 学习笔记1---新建工程和创建源代码文件
- websocket简单理解
- 设置linux新用户默认当前目录及使用的shell
- oracle排序后的第一条记录
- [转]网页实时聊天之js和jQuery实现ajax长轮询 PHP
热门文章
- vue自定义指令笔记
- <;Stack>; (高频)394 ( 高频)224
- 基于mysqld_multi实现MySQL 5.7.24多实例多进程配置
- thinkphp5.1单模块设置
- python接口自动化8-unittest框架使用
- Linux 部署vue项目(使用nginx)
- IT兄弟连 Java语法教程 数据类型3
- c#汉字转拼音首字母全拼支持多音字
- Percona Monitoring and Management (PMM) - 快速入门
- SpringCloud的入门学习之Eureka(Eureka的单节点)