c++大小写字母转换的思路有几种?

互联网 20-6-10

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++) 		cout<<a[i]; 	cout<<endl; 	system("pause"); 	return 0; }
#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; }
#include<iostream> #include<string> using namespace std; int main() {     //声明字符数组     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 写成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++大小写字母转换的思路有几种?的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:C语言中数组元素的下标下限是什么

相关资讯