原创作品 转载请注明出处http://blog.csdn.net/always2015/article/details/45504045
这一道题不难,主要在于掌握什么是合法的c字符串,合法的字符串是由字母,下划线,数字组成,开头必须是字母或者下划线。有了这些概念,接下来就是一下判断语句的事情了。我的AC代码如下:
#include <iostream>
#include<string>
#include<stdio.h>
using namespace std;
int main()
{
int n,length,flag=0;
string input_str;
cin>>n;
//获取回车,否则出错
getchar();
for(int i=0; i<n; i++)
{
//获取一整行字符串
getline(cin,input_str);
length=input_str.size();
for(int j=0; j<length; j++)
{
//开头必须是字母或者下划线
if(j==0)
{
if(input_str[0]>='A'&&input_str[0]<='Z'||input_str[0]>='a'&&input_str[0]<='z'||input_str[0]=='_')
{
++flag;
//必须有continue
continue;
}
else
{
cout<<"no"<<endl;
break;
}
}
//除了开头,合法的字符串时下划线,字母,数字
if(input_str[j]>='A'&&input_str[j]<='Z'||input_str[j]>='a'&&input_str[j]<='z'||input_str[j]=='_'||input_str[j]>='0'&&input_str[j]<='9')
{
++flag;
}
else
{
cout<<"no"<<endl;
break;
}
}
//如果正确的字符位数等于长度,说明是合法的字符串
if(flag==length)
cout<<"yes"<<endl;
flag=0;
}
return 0;
}