http://acm.hdu.edu.cn/showproblem.php?pid=2024
在这道题中出现的问题有,对c语言合法标识符的理解不深刻(首字符为字母或下划线,其他为字母、下划线或数字)
粗心的将n同str.length()搞混了。
提交之前未自己测试,太粗心了。
ccf提交的时候谨记至少三遍找wrong answer的过程。
#include <iostream>
#include <string>
using namespace std;
int main(){
int n;cin>>n;
getchar();
while(n--){
string str;
getline(cin,str);
if(str.find(" ")==string::npos){
if((str[0]>='a'&&str[0]<='z')||(str[0]>='A'&&str[0]<='Z')||str[0]=='_'){
bool flag=true;
for(int i=1;i<str.length();i++){
if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')||str[i]=='_'||(str[i]>='0'&&str[i]<='9')){
}else{
cout<<"no"<<endl;
flag=false;
break;
}
}
if(flag)cout<<"yes"<<endl;
}else{
cout<<"no"<<endl;
}
}else{
cout<<"no"<<endl;
}
}
return 0;
}