C语言中的合法标识符的定义为:以下划线或字母开头的字母数字串(含下划线)。
完成一个程序实现对输入的n个字符串进行判定,是否为C语言的合法标识符。如果是则输出1,不是则输出0
以下为我的程序:
#include <stdio.h>
#include <string.h>
int main()
{
char str[1000][80];
int i,j,k,n,flag=1;
scanf("%d",&n);
for(j=0;j<n;j++)
{
for(k=0;k<80;k++)
scanf("%s",&str[j][k]);
}
for(j=0;j<n;j++)
{
k=0;
if(str[j][k]==95||str[j][k]>64&&str[j][k]<91||str[j][k]>96&&str[j][k]<123)
{
for(k=1;k<80;k++)
{
if(str[j][k]==95||str[j][k]>64&&str[j][k]<91||str[j][k]>96&&str[j][k]<123||str[j][k]>47&&str[j][k]<58)
continue;
else
{
printf("0\n");
break;
}
}
printf("1\n");
}
else
printf("0\n");
}
return 0;
}
我试图用ASCII码来判断 但是第三个循环那里有些小问题 请问如何改正?
这不是小问题啊……你这个问题很大啊……
#include <stdio.h>最后再补充几点,
不用统一输入统一输出。输入一个字符串,处理,输出,再输入下一个即可。
|| && 一起用的时候加括号,避免潜在的逻辑错误
用'A'来取A字符的ascii码。你就不用去查表了。而且就算你要直接用ascii值,str[j][k]>=48也比str[j][k]>47可读性大很多。
所以你这里完全可以写成