跨境派

跨境派

跨境派,专注跨境行业新闻资讯、跨境电商知识分享!

当前位置:首页 > 综合服务 > 社群媒体 > C语言_C++实现大小写字母相互转化(超详细,一看就懂)

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函数判断字符是否为字母字符。如果是字母字符,则使用isupperislower函数判断是大写字母还是小写字母,并使用tolowertoupper函数进行转换。最后,输出转换后的字符串。注意,由于我们使用了引用修改了字符串中的字符,所以不需要重新分配内存或复制字符串。

本文链接:https://www.kjpai.cn/news/2024-04-10/156518.html,文章来源:网络cs,作者:康由,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

文章评论