输入一个字符串str,满足以下三个条件,返回True:
1、字符只能是 大小写字母 数字组成
2、首字符必须是大写字母
3、搭配组合必须满足三个中的两个:(1)大写字母+数字;(2)小写字母+数字;(3)大小写字母+数字
自己写的,如果有什么用例没有覆盖完,麻烦告诉我哈,谢谢
#include<iostream>
#include<string>
using namespace std;
int main(){
string str;cin>>str;
//先满足条件2 再满足条件1 再满足条件3
//条件3有情况:(1)首字母大写+数字 (2)首字母大写+小写 (3) ((1)&&(2))
if(isupper(str[0])) {
int a=0,one=0;//小写和数字是否有的判断
for(int i=1;i<str.size();i++){
if(isalnum(str[i])){
if(islower(str[i])){
a=1;
}
if(isdigit(str[i])){
one=1;
}
}
else{cout<<"false"<<endl;break;}
}
if(a==1 || one==1 ||(a==1 && one==1)){cout<<"true"<<endl;}
else{cout<<"false"<<endl;}
}
else{cout<<"false"<<endl;}
return 0;
}
扩展
一、字符串的大小写整体转换
// 将字符串str全部转化为大写
transform(str.begin(), str.end(), str.begin(), ::toupper);
cout << "字符串转化为大写\t\t" << str << endl;
// 将字符串str全部转化为小写
transform(str.begin(), str.end(), str.begin(), ::tolower);
cout << "字符串转化为小写\t\t" << str << endl;
二、字符大小写转换
//转大写
char test1=toupper('a')
//转小写
char test2=tolower('A')
三、判断 大小写字母/数字
isalpha()// 是否为字母
islower()// 是否为小写字母
isupper()// 是否为大写字母
isdigit()// 是否为数字
isalnum()// 是否为字母或数字