问题标题: 酷町堂:1088 求解

0
0
已解决
马奕阳
马奕阳
中级守护
中级守护

 

#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;
}


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并输出

0
顾博延
顾博延
高级光能
高级光能

你的条件判断错误,1、a[0]也可以是下划线。(建议写在循环前面)2、写在循环前面就要从1开始遍历。3、字符串不能有空格,所以用cin就行

0
张洪睿
张洪睿
资深光能
资深光能

你可以在输入后面判断a的第1位是不是数字或者小写字母,是的话就输出No,并且结束程序

循环里面判断:如果当前字符是不是数字或者大写字母或者小写字母,是的话跳过,否则输出No,并且结束程序

求采纳+点赞

我要回答