杭电ACM 2024 C语言合法标识符

http://acm.hdu.edu.cn/showproblem.php?pid=2024


这道题我做了好久啊,基础知识又忘了不少,尤其是字符串的处理,好叭,复习一下。


#include 
#include 
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"<='a'&&ch[i]<='z')||(ch[i]>='A'&&ch[i]<='Z')||(ch[i]<='9'&&ch[i]>='0'))
						sum++;
				if(sum==ch_len) 
					cout<<"yes"<



切记:cin输入结束后,输入流中还有一个换行符\n,这个时候如果用gets或者getline,即使不输入,也会立马会得到一个换行符。。。。。所以要加上一个getchar()之类的消除影响!!

你可能感兴趣的:(hdu)