这是我的目录:

  • 回顾c语言我们是如何实现大小写字母转换的
    • 实现大小写母的转换
      • 用函数实现

回顾c语言我们是如何实现大小写字母转换的

#define _CRT_SECURE_NO_WARNINGS
//大小写字母(alphabet)的转换 大->小
#include<stdio.h>
int main()
{int ch = 0;//初始化ch,因为getchar的返回值是int,所以初始化的类型也是intwhile ((ch = getchar())!=EOF)//循环输入一个字符ch,这个字符不能读取失败,否则就返回EOF{printf("%c\n", ch+32);//输出一个字符getchar();//读走‘/n';}return 0;
}


这里很快我就写出了一种简单的方法,利用ascll码值大小写字母的相差值32的规律。如果是实现小写字母转换成大写字母呢?我们试想一下大写字母+32的ascll码值就转换成了我们的小写字母,反过来小写字母-32的ascll码值是不是我们的大小字母,这是一种换位思考,对于初学者来说还是蛮重要的,验证一下吧:

思考:但是这样我们一次只能输入一个字符,如果是一串字符呢?如果我想输入一串大写字母再输入一串小写字母呢?

实现大小写母的转换

方法一:
回到我们思考的问题,一次可能输入的不是一个字符,而是一串字符,我们可以用数组来实现,想要输出大写字母和小写字母,这里我们就可以写一个for循环来判断是转换成大写还是小写问题就迎刃而解了!c语言可以用同样的方法,这里我用的C++的语法:

#include <iostream>
using namespace std;
int main()
{char a[100];//定义存放100个字符的字符串数组int i = 0;cout << "请输入一串字符:\n";cin >> a;//输入一串字符(一个字符也行)for (; a[i]; i++){if (a[i] >= 'a' && a[i] <= 'z')a[i] -= 32;else if (a[i] >= 'A' && a[i] <= 'Z')a[i] += 32;}for (i = 0; a[i]; i++)cout << a[i];//输出打印转换后的字符串cout << endl;//换行system("pause");//system ("pause")意思就是让程序暂停一下,然后按任意键继续,初学的时候最多见于程序的末尾处,用于看运行结果,避免程序一闪而过。return 0;
}


划红线处是因为我加了system(“pause”);,方便我们观察,对于初学者这样写有好处!

用函数实现

更简单的方法就是用函数来实现,用我们的toupper和tolower两个函数:
tolower() 如果参数是大写字符,则返回其小写,否则返回该参数.
toupper() 如果参数是小写字母,则返回其大写,否则返回该参数.
方法一:直接上手用


#include <iostream>
using namespace std;
int main()
{cout << (char)toupper('a') << endl;//输出大写字母Acout << (int)('A')<< endl;//把字符转换成ascll码的值65cout << (char)tolower('B') << endl;//输出小写字母bcout << (int)tolower('B') << endl;//输出转换成小写字母的ascll码值98return 0;
}

为了让大家看的更清楚,我把转换后的askll码值也打印出来了。
方法二:用迭代器来实现

#include<iostream>
#include<cctype>
#include<vector>
//vector 是向量类型,它可以容纳许多类型的数据,如若干个整数,所以称其为容器。vector 是C++ STL的一个重要成员,使用它时需要包含头文件:
#include<vector>;
using namespace std;
int main()
{vector<char> vch;//定义存放字符型序列的向量容器对象vch//string类型会默认结尾是一个空字符,如果一个string只含有一个空字符,则该string为空。vector<char>则不同,含有一个空字符后,就不在是空的。int n;char elem;//定义字符型元素cout << "请输入大小写字符的个数:";cin >> n;cout << "请输入" << n << "个大小写字符:";for (int i = 0; i < n; ++i){cin >> elem;vch.push_back(elem);// push_back(elem)在数组最后添加字符数据elem}vector<char>::iterator it = vch.begin();//定义了一个名为it的变量,它的数据类型是由vector<char>定义的iterator类型for (it; it != vch.end(); ++it){//小写字母转换成大写字母if (*it >= 'a' && (*it) <= 'z')//这里如果直接取迭代器it会报错 所以取内容然后取地址不会报错*it = toupper(*it);else if (*it >= 'A' && (*it) <= 'Z')//大写字母转换成小写字母*it = tolower(*it);}cout << "大小写转化之后的结果:";//输出vector<char>::iterator itera = vch.begin();//定义了一个名为itera的变量,它的数据类型是由vector<char>定义的iterator类型,itera变量接受返回的迭代器对象vch并指向字符串的第一个字符for (itera; itera != vch.end(); ++itera)//itera不等于指向字符串的末尾(最后一个字符的下一个位置),itera就++cout << *itera;//对迭代器加*,即获得该迭代器所指的元素cout << endl;return 0;
}


相信C语言代码我们能写出来,C++代码我们一样能写出来!

注意一些用法:
一.为什么我要定义elem?
elem:elem是单词element(元素)的缩写,在程序定义中代表某一不确定的类型,也就是抽象的数据类型,为了使程序可读性强,并且便于修改,让elem代表多种的数据类型,也就是为int、char等等的数据类型,起了一个别名,在头文件中定义:typedef char elem; //抽象元素类型为char类型,这样定义之后,下面的程序中elem所定义的元素就是char类型的了 ,如果需要修改其类型,直接修改char到其他类型,elem便又代表了所修改的类型数据,这也是方便性的体现。
二.迭代器取地址问题?
1.不能直接取迭代器的地址
2.对迭代器加*,即获得该迭代器所指的元素
3.对迭代器加*,再加&,就是该元素的地址
三.C++中string类下的begin,end,rbegin,rend的用法是什么?
语法:iterator begin();
解释:begin()函数返回一个迭代器,指向字符串的第一个元素.

end
语法:iterator end();
解释:end()函数返回一个迭代器,指向字符串的末尾(最后一个字符的下一个位置).

rbegin
语法:const reverse_iterator rbegin();
解释:rbegin()返回一个逆向迭代器,指向字符串的最后一个字符。

rend
语法:const reverse_iterator rend();
解释:rend()函数返回一个逆向迭代器,指向字符串的开头(第一个字符的前一个位置)。

c++如何用迭代器输出大小写字母?相关推荐

  1. 输入大写字母,输出大小写字母及其对应的ASCII码;输入语句,将大写字母变成小写字母;将句子中每个单词的第一个字母转换为大写字母;输入一串字符,分别算出英文字母、空格、数字、其他字符的个数(C)

    养成好习惯,点个赞 再走:有问题,欢迎私信.评论,我看到都会回复的 以下题目是对于ASCII码的一些练手题 在c语言中 使用%c输出的是字符本身 使用%d输出的是字符对应的ASCII 在ASCII中, ...

  2. java 输出 大小写字母 a-z A-Z

    public class Test04 {public static void main(String[] args) {char da = 'A';char xiao = 'a';for (int ...

  3. 计算机组成原理实验输出大小写字母,计算机组成原理实验指导书-201511修订.doc...

    计算机组成原理 实验指导书 马莉 修订 2015年11月 目 录 实验一 脱机运算器实验1 实验二 基础汇编语言程序设计3 实验三 存储器部件实验与多级中断实验10 实验四 微程序控制器实验17 附录 ...

  4. c语言输入字母程序退出,C语言作业:输入一串字母区分大小写和数字,要求分别输出大小写字母和数字以及个数,并按ESC退出。...

    满意答案 CHY小爱 2013.11.09 采纳率:50%    等级:12 已帮助:38207人 这种题该自己做吧. #include #define MaxLen 255 int main() { ...

  5. 输入字符串,包含数字,大小写字母,编程输出出现做多的数字的和

    题目描述: 输入字符串,包含数字,大小写字母,编程输出出现做多的数字的和. 思路: 1.创建输入对象 2.输入字符串 3.利用正则将字母分离出,剩余的每一个字符串即为待统计的每一个数字,存入字符串数组 ...

  6. 显示所有大写字母python_python 输出所有大小写字母的方法

    用一行输出所有大(小)写字母,以及数字,首先要记住该字母所对应的ASCII码,百度一下就可以看到,ASCII可显示字符 (这里只列举数字和字母) 二进制 十进制 十六进制 图形 0011 0000 4 ...

  7. python输入一个字符串、计算其中小写字符的个数_编写程序,输入一个字符串,统计其中大小写字母数字和其他符号的个数并输出,要求统计过程在函数COUNT中进行...

    答:对比ASCII码,在程序中小写字母96 答:a = "aAsmr3idd4bgs7Dlsf9eAF" 请将a字符串的数字取出,并输出成一个新的字符串. 请统计a字符串出现的每个 ...

  8. 7-85 根据输入的空气污染指数,输出相应的信息。7-86 分支结构——大小写字母判断7-87 A±B

    目录 7-85 根据输入的空气污染指数,输出相应的信息. 7-86 分支结构--大小写字母判断 7-87 A±B 7-85 根据输入的空气污染指数,输出相应的信息. 分数 5 全屏浏览题目 切换布局 ...

  9. 将一个只含有大小写字母的字符串大写变成小写,小写变成大写后输出。

    如题.将一个只含有大小写字母的字符串大写变成小写,小写变成大写后输出. 输入一个有大写有小写的字符串,把字符串中的字符大小写反转输出 输入样例 1 AcDe 输出样例 1 aCdE c++代码如下 # ...

最新文章

  1. Android中 TextView的使用
  2. 【转】BT5汉化步骤
  3. (转)postman中 form-data、x-www-form-urlencoded、raw、binary的区别
  4. 安装mysql5.7出现问题_本地安装Mysql5.7过程中出现的一系列问题
  5. java实现什么接口进行排序_使用Java中Comparator接口实现自定义排序
  6. android关闭应用及获取运营商ISP,判断sim卡属于哪个运营商
  7. mysql 针对table的查看命令行
  8. Java-实现简单取色器
  9. 活动 | 腾讯×Nature Research:42问AI与机器人的未来
  10. cad查看_天正电气CAD教程之标注实例讲解
  11. html毕业答辩ppt,毕业论文答辩ppt(要求和制作技巧)
  12. ac管理器管理员密码忘记了_你应该使用密码管理器吗
  13. babyheap_0ctf_2017 详解
  14. 如何防止CSRF攻击
  15. N个数选出M个最小或最大值算法
  16. 看完你就知道交换机端口该搭配什么光模块了
  17. 友盟集成微信授权登录,切换微信账号,登录无法切换微信信息问题
  18. kaggle 收不到手机验证码
  19. 后台推送消息给app_小米加入统一推送联盟!避免多种APP后台运行,国产手机春天来了...
  20. java 小数乘法_java复习题69151-_人人文库网

热门文章

  1. cad脚本合适_CAD之轮胎说|半导体行业观察
  2. 作为前端,我对业务的一点理解
  3. 蚁群算法(Ant System)(AS)
  4. P2444 [POI2000]病毒(ACAM上找环)
  5. MC9S12芯片知识相关
  6. CV视觉论文alexnet学习笔记(二)
  7. 爬虫实战—轻松爬取全国40城5000+地铁站点数据!附源码和数据集
  8. dnf剑魂buff等级上限_DNF:剑魂变“天帝”,破极/光之兵刃分不清,白白损失几千万金币...
  9. wince5使用access数据库_Windows CE USB Function Driver驱动简析(1)-驱动架构及UfnPdd函数(基于WinCE5.0...
  10. 排序算法系列之(一)——选择排序清新脱俗的一面