scanf()和gets()混用可能会产生冲突,详见http://hi.baidu.com/sky_space/item/54864a1b9fcd0d9e99ce33ce
#include<iostream> #include<cstring> #include<cstdio> using namespace std; int main(){ char a[101]; int s=1,t,len; int i; scanf("%d",&t); getchar(); while(t--){ gets(a); len=strlen(a); if(!((a[0]>='A'&&a[0]<='Z')||(a[0]>='a'&&a[0]<='z')||a[0]=='_')){ printf("No\n"); continue; } else{ for(i=1;i<len;i++) if(!((a[i]>='0'&&a[i]<='9')||(a[i]>='A'&&a[i]<='Z')||(a[i]>='a'&&a[i]<='z')||a[i]=='_')) break; if(i<len) printf("No\n"); else printf("Yes\n"); } } return 0; } /************************************** Problem id : SDUT OJ 2163 Result : Accepted Take Memory : 448K Take Time : 0MS Submit Time : 2013-05-27 14:47:06 **************************************/