C++字母大小写转换方法
字母大小写这个问题相对比较简单,总结了一些常用的大小写转换的方法,欢迎指正补充!
思路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++字母大小写转换方法相关推荐
- java 英文字母大小写转换方法
大写转小写:toLowerCase(): 小写转大写:toUpperCase(): public static void main(String[] args) {//将一组小写的字母转换成a-> ...
- js字母大小写转换方法
1.转换成大写:toUpperCase() 2.转换成小写:toLowerCase() 3.举例: (1)var a="aBcD";a=a.toUpperCase();alert( ...
- php toupper,jquery如何进行字母大小写转换?
字母大小写转换方法:1.使用toLowerCase()方法将大写字母转换为小写,语法""大写字母".toLowerCase()":2.使用toUpperCase ...
- MS word 2010大小写转换方法
MS word 2010大小写转换方法: 首先,选中要进行大小写转换的文本:其次,进行大小写转换. (1)快捷键Ctrl+Shift+A:按一次在大写和小写状态中转换一次. (3)快捷键Shift+F ...
- java比较字符串大小写_java 字符串中判断字母大小写方法
展开全部 方法一: 根据 Character 类提供的大小写判断方法 ``e68a8462616964757a686964616f31333366306434`java Character.isUpp ...
- C++ 字符串字母大小写转换
C++ 字符串字母大小写转换 使用algorithm,里面的tolower(转小写)toupper(转大写) #include <iostream> #include <string ...
- php 英文小写变大写,PHP英文字母大小写转换函数
例1,每个单词的首字母转换为大写:ucwords() 复制代码 代码示例: $foo = 'hello world!'; $foo = ucwords($foo); // He ...
- MySQL中查询时对字母大小写的区分
我相信很多人在mysql中查询时都遇到过mysql不区分字母大小写的情况:如以下例子: 1.SELECT * FROM `user` WHERE userpass = 'Z20'; 结果为: 2.SE ...
- python判断字母左右两边的大写字母有_python习题,,1.26个字母大小写
python习题,,1.26个字母大小写 1.26个字母大小写成对打印,例如:Aa,Bb...... 2.一个list包含10个数字,然后生成一个新的list,要求新的list里面的数都比之前的数多1 ...
最新文章
- 【Linux】使用xshell登陆时密码框为灰色,无法输入密码
- 互联网还留给我们这些出路
- Android项目中出现的Plugin with id ‘kotlin-android‘ not found解决方法
- 【Linux】一步一步学Linux——ntsysv命令(149)
- SharePoint GridView的使用2——DataSourceView的使用
- 转账给张三,钱却被李四收到,如何狙击凶险的 App 漏洞?——专访娜迦CTO玩命...
- jquery动态改变div宽度和高度
- 7805急剧发热,可能是什么原因?
- Unity Bug解决分析思路
- 计算机基础知识试题分值,计算机考试题分值分布.doc
- java dht 爬虫_python开发的 dht网络爬虫
- easyui datagrid 点击其它 单元格,不让头列 checkbook 选中
- 计算机打字速成,计算机汉字输入五笔字型打字速成.pdf
- IT 最高,2018 年全国平均年薪!非私企 147,678¥
- 更改LXDE的语言为中文
- imageJ执行宏脚本出现了灰蒙蒙的图片。
- Unity Transform 检视器快速复制粘贴
- VS中Qt 开发——无法解析的外部符号 QMetaObject 解决办法
- python爬取智联招聘网_Python-爬取智联招聘
- 华为android system,systemui.apk下载