c++大小写字母转换的思路有几种?
导读:收集整理的这篇文章主要介绍了c++大小写字母转换的思路有几种?,觉得挺不错的,现在分享给大家,也给大家做个参考。C++简介:C++是c语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以...
收集整理的这篇文章主要介绍了c++大小写字母转换的思路有几种?,觉得挺不错的,现在分享给大家,也给大家做个参考。C++简介:
C++是c语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。
C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。
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++) couta[i]; coutendl; 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; } else cout (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
#includeiostream> #includestring> using namespace std; int main(){ //声明字符数组 char str[80],*p; int i; //转换字符串中的小写为大写 cout"将字符串中的小写字母转换为大写"endl; cout"请输入原字符串:"endl; cin> > str; p=strupr(str); cout"p:"pendl; cout"string:"strendl; cout"___________________"endl; //转换字符串中的大写为小写 cout"将字符串中的大写字母转换为小写"endl; cout"请输入原字符串:"endl; cin> > str; p=strlwr(str); cout"p:"pendl; cout"string:"strendl; cout"___________________"endl; system("pause"); return 0; }
程序2.3 利用函数toupper、tolower
#includeiostream> #includecctype> #includevector> using namespace std; int main(){ vectorchar> vch; int n; char elem; cout"请输入大小写字符的个数:"; cin> > n; cout"请输入"n"个大小写字符:"; for(int i = 0; in; ++i) { cin> > elem; vch.push_back(elem); } vectorchar> ::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"大小写转化之后的结果:"; vectorchar> ::iterator itera = vch.begin(); for(itera; itera != vch.end(); ++itera) cout*itera; coutendl; return 0; }
程序2.4 利用transform和tolower及toupper进行结合
#includeiostream> #includealgorithm> #includestring> #includecctype> 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"转化为小写后为:"strendl; ///转大写 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); coutwstr; return 0; }
程序2.5 写成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); coutsrc; return 0; }
推荐教程:《C语言教程》
以上就是c++大小写字母转换的思路有几种?的详细内容,更多请关注其它相关文章!
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: c++大小写字母转换的思路有几种?
本文地址: https://pptw.com/jishu/594194.html