中级守护
#include<iostream>
#include<string>
using namespace std;
int main(){
string a;
getline(cin,a);
for(int i=0;i<a.size();i++){
if((a[0]>='A'&&a[0]<='Z')&&(a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z')||(a[i]=='_')&&(a[i]!=','&&a[i]!='<'&&a[i]!='.'&&a[i]!='>'&&a[i]!='?'&&a[i]!=';'&&a[i]!=':'&&a[i]!='"'&&a[i]!='|'&&a[i]!=']'&&a[i]!='['&&a[i]!='}'&&a[i]!='{'&&a[i]!='='&&a[i]!='+'&&a[i]!='-'&&a[i]!=')'&&a[i]!='('&&a[i]!='*'&&a[i]!='&'&&a[i]!='^'&&a[i]!='%'&&a[i]!='$'&&a[i]!='#'&&a[i]!='@'&&a[i]!='!'&&a[i]!='`'&&a[i]!='~')){
cout<<"Yes";
break;
}else{
cout<<"No";
break;
}
}
return 0;
}
高级光能
(弱弱的说一句,能不能插入代码段a,看这个有亿点难受~)
你的代码中:
判断a[0]可以放在循环外面
循环的if里面:
(a[i]!=','&&a[i]!='<'&&a[i]!='.'&&a[i]!='>'&&a[i]!='?'&&a[i]!=';'&&a[i]!=':'&&a[i]!='"'&&a[i]!='|'&&a[i]!=']'&&a[i]'&&a[i]!=')'&&a[i]!='('&&a[i]!='*'&&a[i]!='&'&&a[i]!='^'&&a[i]!='%'&&a[i]!='$'&&a[i]!='#'&&a[i]!='@'&&a[i]!='!'){
没什么用,可以改成(!(合法文件名的要求))
思路:
定义bool类型flag,输入后先单独判断a[0],然后循环遍历字符串,如果不符合合法文件名的要求,flag=1,break,最后判断flag并输出
高级光能
你的条件判断错误,1、a[0]也可以是下划线。(建议写在循环前面)2、写在循环前面就要从1开始遍历。3、字符串不能有空格,所以用cin就行