C语言_C++实现大小写字母相互转化(超详细,一看就懂)
时间:2024-04-10 13:20:39 来源:网络cs 作者:康由 栏目:社群媒体 阅读:
ASCLL 方法
“在C语言中,小写字母转换为大写字母的方法是将小写字母的ASCII码值减去32(例:A=a-32);大写字母转换为小写字母的的方法是将大写字母的ASCII码值加上32(例:a=A+32)即可。”
以下是使用ASCII码实现英文字母大小写转换的C++代码:
#include <iostream>using namespace std;int main() { char ch; cout << "请输入一个英文字母:"; cin >> ch; if (ch >= 'A' && ch <= 'Z') { // 如果输入的是大写字母 ch = ch + 32; // 将ASCII码值加上32,转换为小写字母并输出 cout << "转换后的字母为:" << ch << endl; } else if (ch >= 'a' && ch <= 'z') { // 如果输入的是小写字母 ch = ch - 32; // 将ASCII码值减去32,转换为大写字母并输出 cout << "转换后的字母为:" << ch << endl; } else { cout << "输入的不是英文字母。" << endl; } return 0;}
算法讲解:
首先,我们使用cin
从标准输入中读取一个字符ch
。然后,我们使用ASCII码来判断该字符是否为大写字母或小写字母。大写字母的ASCII码范围是65-90,小写字母的ASCII码范围是97-122。如果输入的字符在大写字母的ASCII码范围内,则将其加上32,将大写字母转换为小写字母;如果输入的字符在小写字母的ASCII码范围内,则将其减去32,将小写字母转换为大写字母。如果输入的字符既不是大写字母也不是小写字母,则输出“输入的不是英文字母”。最后,我们将转换后的字符输出到标准输出。 该算法的原理基于ASCII码的特性。ASCII码是一种用于计算机中表示字符的编码方式,每个字符都有一个对应的数字码。大写字母A-Z的ASCII码范围是65-90,小写字母a-z的ASCII码范围是97-122。通过比较输入字符的ASCII码值,我们可以判断它是否为大写字母或小写字母。
如果输入的字符是大写字母,我们将其ASCII码值加上32,这样就可以得到对应的小写字母的ASCII码值。例如,大写字母A的ASCII码值为65,加上32后得到97,即小写字母a的ASCII码值。
如果输入的字符是小写字母,我们将其ASCII码值减去32,这样就可以得到对应的大写字母的ASCII码值。例如,小写字母a的ASCII码值为97,减去32后得到65,即大写字母A的ASCII码值。
通过这种加减操作,我们可以实现英文字母的大小写转换。注意,在转换过程中,我们直接对字符的ASCII码值进行操作,因此需要注意字符的数据类型和取值范围。同时,还要注意输出时将转换后的字符类型转换为对应的类型,以便正确显示结果。
还有一种方法
#include <iostream> #include <cctype> // 包含字符处理函数isupper和islower using namespace std; int main() { char ch; cout << "请输入一个英文字母:"; cin >> ch; if (isupper(ch)) { // 如果输入的是大写字母 ch = tolower(ch); // 转换为小写字母并输出 cout << "转换后的字母为:" << ch << endl; } else if (islower(ch)) { // 如果输入的是小写字母 ch = toupper(ch); // 转换为大写字母并输出 cout << "转换后的字母为:" << ch << endl; } else { cout << "输入的不是英文字母。" << endl; } return 0; }
这是利用了 c++库函数
算法讲解:
首先,我们使用cin从标准输入中读取一个字符ch。然后,我们使用isupper函数判断该字符是否为大写字母。如果是,则使用tolower函数将其转换为小写字母并输出;如果不是,则使用islower函数判断该字符是否为小写字母。如果是,则使用toupper函数将其转换为大写字母并输出;如果不是,则输出“输入的不是英文字母”。在上述过程中,我们使用了C++标准库中的字符处理函数isupper、islower、tolower和toupper。这些函数可以方便地判断字符是否为大写字母、小写字母,以及将字符转换为大写或小写形式。练习题
输入一段英文字符串(可以包含空格),字符串中的大写字母变成小写字母,小写字母变成大写字,然后输出,如果有非字母字符则不变化
方法一
以下是使用ASCII码方法实现英文字母大小写转换的C++代码:
#include <iostream>#include <string>using namespace std;int main() { string str; cout << "请输入一段英文字符串:"; getline(cin, str); // 读取整行字符串 for (char& c : str) { // 遍历字符串中的每个字符 if (isalpha(c)) { // 判断是否为字母字符 if (c >= 'A' && c <= 'Z') { // 判断是否为大写字母 c = c + 32; // 转换为小写字母 } else if (c >= 'a' && c <= 'z') { // 判断是否为小写字母 c = c - 32; // 转换为大写字母 } } } cout << "转换后的字符串为:" << str << endl; return 0;}
代码解释:
我们使用了string
类型来存储输入的字符串,并使用getline
函数读取整行字符串。这样可以处理包含空格的情况。使用for
循环遍历字符串中的每个字符。通过isalpha
函数判断字符是否为字母字符。如果是字母字符,则使用ASCII码判断是大写字母还是小写字母,并使用加减操作进行转换。注意,由于字符在内存中是以ASCII码形式存储的,因此可以直接进行加减操作。最后,输出转换后的字符串。注意,由于我们使用了引用修改了字符串中的字符,所以不需要重新分配内存或复制字符串。 方法二
#include <iostream>#include <string>#include <cctype>using namespace std;int main() { string str; cout << "请输入一段英文字符串:"; getline(cin, str); // 读取整行字符串 for (char& c : str) { // 遍历字符串中的每个字符 if (isalpha(c)) { // 判断是否为字母字符 if (isupper(c)) { // 判断是否为大写字母 c = tolower(c); // 转换为小写字母 } else if (islower(c)) { // 判断是否为小写字母 c = toupper(c); // 转换为大写字母 } } } cout << "转换后的字符串为:" << str << endl; return 0;}
代码解释:
我们使用了string
类型来存储输入的字符串,并使用getline
函数读取整行字符串。这样可以处理包含空格的情况。使用for
循环遍历字符串中的每个字符。通过isalpha
函数判断字符是否为字母字符。如果是字母字符,则使用isupper
和islower
函数判断是大写字母还是小写字母,并使用tolower
和toupper
函数进行转换。最后,输出转换后的字符串。注意,由于我们使用了引用修改了字符串中的字符,所以不需要重新分配内存或复制字符串。 本文链接:https://www.kjpai.cn/news/2024-04-10/156518.html,文章来源:网络cs,作者:康由,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!