C语言合法标识符

来源:百度知道 编辑:UC知道 时间:2024/05/16 14:34:52
Description

输入一个字符串,判断其是否是C的合法标识符。

Input

输入数据包含n+1行,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是一个长度不超过50的字符串。

Output

对于输入的每个标识符,如果输入数据是C的合法标识符,则输出"yes",否则,输出“no”。

Sample Input

3
12ajf
fi8x_a
ff ai_2

Sample Output

no
yes
no

我正好有这个程序。。。
这么变态的也让你们做。。
50348 zxl0714 1357 Accepted 40K 15MS G++ 1.28K 2007-04-18 19:24:23

#include <stdio.h>

int identf(char *str);
int isKey(char *str);
int x_strcmp(char *si, char *di);

int main()
{
char buffer[256];
int n,i;
scanf("%d",&n);
gets(buffer);
for (i=0;i<n;i++){
gets(buffer);
if(identf(buffer))
puts("yes");
else
puts("no");
}
return 0;
}
int identf(char *str)
{
int flag=0;
char *p=str;
if((*str>='a' && *str<='z') || (*str>='A' && *str<='Z') || *str=='_')
{
flag=1;
str++;
}
while(*str && flag)
{
if((*str>='a' && *str<='z') || (*str>='A' && *str<='Z') || *str=='_'
|| (*str>='0' && *str<='9'))