字母大小写这个问题相对比较简单,总结了一些常用的大小写转换的方法,欢迎指正补充!

思路1:根据字母的ASCII表进行转换:

由表格可以看出,对应大小写字母之间相差32,由此可以衍生出以下编程的思路:


程序1.1 

#include <iostream>using namespace std;int main()
{char a[20];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");return 0;
}

程序1.2

#include <iostream>using namespace std;void main(void)
{char i;cout<<"Input,'#'for an end: "<<endl;while(1){cin >> i;if ((i>=65)&&(i<=90)){i=i+32;cout << i;}else if((i>=97)&&(i<=122)){i=i-32;cout << i;}elsecout << (int)i;if(i=='#')break;}
}

思路2 :利用大小写字母转换函数,由此可以衍生出一下几种编程的思路:

程序2.1   简易版

#include <iostream>using namespace std;int main()
{cout<<(char)toupper(97)<<'\n';cout<<(char)toupper('a')<<'\n';cout<<(char)tolower(66)<<'\n';cout<<(char)tolower('B')<<'\n';return 0;
}

程序2.2  利用函数strupr、strlwr

#include<iostream>
#include<string>using namespace std;int main(int argc, char* argv[])
{//声明字符数组char str[80],*p;int i;//转换字符串中的小写为大写cout<<"将字符串中的小写字母转换为大写"<<endl;cout<<"请输入原字符串:"<<endl;cin>>str;p=strupr(str);cout<<"p:"<<p<<endl;cout<<"string:"<<str<<endl;cout<<"___________________"<<endl;//转换字符串中的大写为小写cout<<"将字符串中的大写字母转换为小写"<<endl;cout<<"请输入原字符串:"<<endl;cin>>str;p=strlwr(str);cout<<"p:"<<p<<endl;cout<<"string:"<<str<<endl;cout<<"___________________"<<endl;system("pause");return 0;
}


程序2.3  利用函数toupper、tolower

#include<iostream>
#include<cctype>
#include<vector>using namespace std;int main()
{vector<char> vch;int n;char elem;cout<<"请输入大小写字符的个数:";cin>>n;cout<<"请输入"<<n<<"个大小写字符:";for(int i = 0;i<n;++i){cin>>elem;vch.push_back(elem);}vector<char>::iterator it = vch.begin();for(it;it != vch.end();++it){if(*it >= 'a'&&(*it) <='z')*it = toupper(*it);else if(*it >= 'A'&& (*it) <= 'Z')*it = tolower(*it);}cout<<"大小写转化之后的结果:";vector<char>::iterator itera = vch.begin();for(itera;itera != vch.end();++itera)cout<<*itera;cout<<endl;return 0;
}


程序2.4 利用transform和tolower及toupper进行结合

#include<iostream>
#include<algorithm>
#include<string>
#include<cctype>using namespace std;int main()
{cout<<"请输入一个全部大写的字符串:";string str;cin>>str;///转小写transform(str.begin(),str.end(),str.begin(),tolower);///transform(wstr.begin(), wstr.end(), wstr.begin(), towlower);cout<<"转化为小写后为:"<<str<<endl;///转大写cout<<"请再输入一个全部小写的字符串:";string s;cin>>s;transform(s.begin(), s.end(), s.begin(), toupper);///transform(wstr.begin(), wstr.end(), wstr.begin(), towupper);cout<<"转化为大写后为:"<<s;wstring wstr =L"Abc";transform(wstr.begin(), wstr.end(), wstr.begin(), towupper);cout<<wstr;return 0;
}


程序2.5  注意wmain(),另一种编程方法

#include <iostream>
#include <cstring>
#include <windows.h>
#include <cctype>
#include <algorithm>using namespace std;int wmain(int argc, WCHAR* argv[])
{char ch = 'a';ch = toupper(ch);cout<<ch<<endl;WCHAR wch = 'a';wch = towupper(wch);cout<<char(wch)<<endl;WCHAR wideStr[] = L"Abc";_wcslwr_s(wideStr, wcslen(wideStr) + 1);_wcsupr_s(wideStr, wcslen(wideStr) + 1);wstring wstr =L"Abc";transform(wstr.begin(), wstr.end(), wstr.begin(), towupper);return 0;
}

程序2.6  写成convert函数,利用|=和&=进行变换

#include <iostream>
#include <cassert>using namespace std;char* convert(char *src)
{char *p = src;assert(p != NULL);while(*p){if ('A' <= *p && *p < 'Z')*p |= 0x20;else if ('a' <= *p && *p < 'z')*p &= ~0x20;p++;}return src;
}int main()
{char src;cin>>src;convert(&src);cout<<src;return 0;
}

当然还有其它方法,欢迎补充!


参考资料:

c++字符串大小写转换

c++大小写转换

C++大小写转换

toupper, _toupper, towupper, _toupper_l, _towupper_l

C++字母大小写转换方法相关推荐

  1. java 英文字母大小写转换方法

    大写转小写:toLowerCase(): 小写转大写:toUpperCase(): public static void main(String[] args) {//将一组小写的字母转换成a-> ...

  2. js字母大小写转换方法

    1.转换成大写:toUpperCase() 2.转换成小写:toLowerCase() 3.举例: (1)var a="aBcD";a=a.toUpperCase();alert( ...

  3. php toupper,jquery如何进行字母大小写转换?

    字母大小写转换方法:1.使用toLowerCase()方法将大写字母转换为小写,语法""大写字母".toLowerCase()":2.使用toUpperCase ...

  4. MS word 2010大小写转换方法

    MS word 2010大小写转换方法: 首先,选中要进行大小写转换的文本:其次,进行大小写转换. (1)快捷键Ctrl+Shift+A:按一次在大写和小写状态中转换一次. (3)快捷键Shift+F ...

  5. java比较字符串大小写_java 字符串中判断字母大小写方法

    展开全部 方法一: 根据 Character 类提供的大小写判断方法 ``e68a8462616964757a686964616f31333366306434`java Character.isUpp ...

  6. C++ 字符串字母大小写转换

    C++ 字符串字母大小写转换 使用algorithm,里面的tolower(转小写)toupper(转大写) #include <iostream> #include <string ...

  7. php 英文小写变大写,PHP英文字母大小写转换函数

    例1,每个单词的首字母转换为大写:ucwords() 复制代码 代码示例: $foo = 'hello world!'; $foo = ucwords($foo);             // He ...

  8. MySQL中查询时对字母大小写的区分

    我相信很多人在mysql中查询时都遇到过mysql不区分字母大小写的情况:如以下例子: 1.SELECT * FROM `user` WHERE userpass = 'Z20'; 结果为: 2.SE ...

  9. python判断字母左右两边的大写字母有_python习题,,1.26个字母大小写

    python习题,,1.26个字母大小写 1.26个字母大小写成对打印,例如:Aa,Bb...... 2.一个list包含10个数字,然后生成一个新的list,要求新的list里面的数都比之前的数多1 ...

最新文章

  1. 【Linux】使用xshell登陆时密码框为灰色,无法输入密码
  2. 互联网还留给我们这些出路
  3. Android项目中出现的Plugin with id ‘kotlin-android‘ not found解决方法
  4. 【Linux】一步一步学Linux——ntsysv命令(149)
  5. SharePoint GridView的使用2——DataSourceView的使用
  6. 转账给张三,钱却被李四收到,如何狙击凶险的 App 漏洞?——专访娜迦CTO玩命...
  7. jquery动态改变div宽度和高度
  8. 7805急剧发热,可能是什么原因?
  9. Unity Bug解决分析思路
  10. 计算机基础知识试题分值,计算机考试题分值分布.doc
  11. java dht 爬虫_python开发的 dht网络爬虫
  12. easyui datagrid 点击其它 单元格,不让头列 checkbook 选中
  13. 计算机打字速成,计算机汉字输入五笔字型打字速成.pdf
  14. IT 最高,2018 年全国平均年薪!非私企 147,678¥
  15. 更改LXDE的语言为中文
  16. imageJ执行宏脚本出现了灰蒙蒙的图片。
  17. Unity Transform 检视器快速复制粘贴
  18. VS中Qt 开发——无法解析的外部符号 QMetaObject 解决办法
  19. python爬取智联招聘网_Python-爬取智联招聘
  20. 华为android system,systemui.apk下载

热门文章

  1. Visual Studio - 修改主题背景颜色
  2. 【高德地图】iOS 开发汇总(一)
  3. Java:每日获取稳定可用免费代理ip(仅供日常使用,请勿用作他途)
  4. 一款Python实用神器,5 行 Python 代码 实现一键批量扣图
  5. 如何在小程序内实现界面快速置顶功能?
  6. 在虚拟机上调试网络时要注意的内容
  7. 揭露数据不一致的利器 —— 实时核对系统
  8. 在Mac上模拟IE浏览器
  9. Android 炫酷自定义 View - 剑气加载
  10. 运用gm/id法设计二级运放教程