只需一步,快速开始
3188
4
3290
管理员
以下函数的声明在头文件<cctype>
tolower()函数是把字符串都转化为小写字母。
isalpha()用来判断一个字符是否为字母,如果是字符则返回非零,否则返回零。
cout<<isalpha('a'); //返回非零 cout<<isalpha('2'); //返回0 复制代码2.1.2 isalnum()
isalnum()用来判断一个字符是否为数字或者字母,也就是说判断一个字符是否属于az||AZ||0~9。
cout<<isalnum('a'); //输出非零 cout<<isalnum('2'); // 非零 cout<<isalnum('.'); // 零 复制代码2.1.3 islower()
islower()用来判断一个字符是否为小写字母,也就是是否属于a~z。
cout<<islower('a'); //非零 cout<<islower('2'); //输出0 cout<<islower('A'); //输出0 2.1.4 isupper()
cout<<islower('a'); //非零 cout<<islower('2'); //输出0 cout<<islower('A'); //输出0
isupper()和islower相反,用来判断一个字符是否为大写字母。
cout<<isupper('a'); //返回0 cout<<isupper('2'); //返回0 cout<<isupper('A'); //返回非零 复制代码2.2 字符大小写转换2.2.1 tolower()
string str= "THIS IS A STRING"; for (int i=0; i <str.size(); i++) { str[i] = tolower(str[i]); } 复制代码 2.2.2 toupper()
toupper()函数是把字符串都转化为大写字母。
string str= "hahahahaha"; for (int i=0; i <str.size(); i++) str[i] = toupper(str[i]); 复制代码 3.LeetCode例题使用示范3.1例题一
3.1.1方法一
class Solution { public: bool isPalindrome(string s) { string str="\0";//定义一个新的字符串 for(int i=0;i<s.length();i++){//对字符串s进行遍历 if(isalnum(s[i])){//isalnum判定是不是字母或者数字字符 str += tolower(s[i]);//将大写字母转换为小写,如果不是则不动 } } string str_rev(str.rbegin(),str.rend());//对新字符串进行反转 if(str==str_rev)//如果反转以后的字符串和原字符串相等则返回true return true; else return false; } }; 复制代码3.1.2方法二
//更好的双指针做法。 class Solution { public: bool isPalindrome(string s) { string str = "\0"; int n = s.length(); int begin = 0; int end = n - 1; while (begin < end) { while (begin < end && (!isalnum(s[begin]))) { begin++;//从前往后找符合条件的字符 } while (begin < end && (!isalnum(s[end]))) { end--;//从后往前找符合条件的字符 } if (tolower(s[begin]) != tolower(s[end])) return false; begin++; end--; } return true; } }; 复制代码3.2例题二
3.2.1方法
class Solution { public: bool detectCapitalUse(string word) { int size=word.length(); int Big=0;//大写字符 int Small=0;//小写字符 for(int i=0;i<size;i++)//先遍历字符串中的字符 { if(islower(word[i]))//islower()小写字符个数 { Small++; } else if(isupper(word[i]))//isupper()大写字符个数 { Big++; } } if(Small==size||Big==size)//如果都是大写或者小写返回true { return true; } else if(Big==1&&isupper(word[0]))//如果大写只有一个且是第一个返回true { return true; } else return false; } }; 复制代码
举报
本版积分规则 发表回复 回帖后跳转到最后一页