#include<string>
#include<iostream>
#include<sstream>
#include<cmath>
#include<cstring>
#include<cstdlib>
using namespace std;
int main()
{
char a[100];int n,i;
cin>>n;
r:while(n--)
{
cin>>a;
if(a[0]>='a'&&a[0]<='z'||a[0]>='A'&&a[0]<='Z')
{for(i=1;i<strlen(a);i++)
{
if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z'||a[i]>='0'&&a[i]<='9'||a[i]=='_') continue;
else
{cout<<"no"<<endl;goto r;}
}
cout<<"yes"<<endl;}
}
}
这是自己写的憨憨代码
#include <iostream>
#include <cstring>
#include<cstdlib>
using namespace std;
int main()
{
int n,sum;
int flag;
cin>>n;
getchar(); //消除换行符\n对cin.getline的影响
while(n--){
char ch[51];
cin.getline(ch,51);
flag=0;
sum=0;
int ch_len=strlen(ch);
if(!(ch[0]=='_'||(ch[0]>='a'&&ch[0]<='z')||(ch[0]>='A'&&ch[0]<='Z'))){
cout<<"no"<<endl;
continue;
}
for(int i=0;i<ch_len;i++)
if(ch[i]=='_'||(ch[i]>='a'&&ch[i]<='z')||(ch[i]>='A'&&ch[i]<='Z')||(ch[i]<='9'&&ch[i]>='0'))
sum++;
if(sum==ch_len)
cout<<"yes"<<endl;
else cout<<"no"<<endl;
}
return 0;
}
这是标准答案
可以看到答案中运用了sum计数器检查输入的字符合格数量,免去了使用goto函数