islower/isupper函数
islower和isupper是C++标准库中的字符分类函数,用于检查一个字符是否为小写字母或大写字母。
islower和isupper函数需要包含头文件,也可用万能头文<bits/stdc++.h>包含。
函数返回值为bool类型。
char ch1 = 'A';
char ch2 = 'a';
//使用islower函数判断字符是否为小写字母
if(islower(ch1)){
cout << ch1 << 'is a lowercase letter.' << endl;
}else{
cout << ch1 << 'is not a lowercase letter.' << endl;
}
//使用isupper函数判断字符是否为小写字母
if(isupper(ch1)){
cout << ch2 << 'is a uppercase letter.' << endl;
}else{
cout << ch2 << 'is not a uppercase letter.' << endl;
}
tolower/toupper函数
tolower(char ch)可以将ch转换为小写字母,如果ch不是大写字母则不进行操作。toupper()同理。
char ch1 = 'A';
char ch2 = 'a';
char lowercaseCh1 = tolower(ch1);
cout << "Lowercase of " << ch1 << "is" << lowercaseCh1 << endl;
char uppercaseCh2 = toupper(ch2);
cout << "Uppercase of " << ch2 << "is" << uppercaseCh2 << endl;
Ascall码
char - 8bit - 2^8个 -256 个-其中有一位符号位-所以用到的是128个字符
char看成一个数字
'c' - 'a' + 'A' = 'C'
c转变成C
在了解了ascii码后,我们可以通过直接对英文字母进行加减运算计算出其大小写的字符。
在ASCII码表中,大写字母的编码范围是65(A)到90(Z),而小写字母的编码范围是97(‘a’)到122(z)。根据这个规则,可以使用ASCII码表进行大小写转换。
Tips:在程序设计时,尤其是用到char类型时,一定要注意到底是“数字09”还是“字符09”
它们也可以通过ascii进行转换。
’6‘ - ’0‘ = 6
#include<bits/stdc++.h>
using namespace std;
//方法一
char convertedCh(char ch)
{
if (islower(ch))
ch = toupper(ch);
else if (isupper(ch))
ch = tolower(ch);
return ch;
}
int main(void) {
string ch; getline(cin, ch);
for (auto& i : ch)
i = convertedCh(i);
cout << ch << '\n';
return 0;
}
//方法二
char convertedCh(char ch)
{
if('a' <= ch&& ch <= 'z')
ch = 'A' + ch - 'a';
if('A' <= ch&& ch <= 'Z')
ch = 'a' + ch - 'A';
return ch;
}