首页 > 编程语言 > 详细

统计C语言合法字符

时间:2015-04-29 00:18:50      阅读:351      评论:0      收藏:0      [点我收藏+]

技术分享

#include <stdio.h>
#include <string.h>
int main()
{
char a[51];
int i,t,n;
while(scanf("%d",&n)!=EOF)
{getchar();
while(n--)
{ t=0;
gets(a);
for(i=0;i<strlen(a);i++)
{
if(a[0]!=‘_‘&&(a[i]<65||a[0]>122||(a[0]>90&&a[0]<97))) {printf("no\n"); break;}
else if(a[i]<0||(a[i]>9&&a[i]<65)||(a[i]>90&&a[i]<97)||(a[i]>122)&&(a[i]!=‘_‘)) {printf("no\n"); break;}
t++;
}
if(t==strlen(a)) printf("yes\n");
}
}
return 0;
}

运行

技术分享

连续输入ENTER键判断正确,而结果应该要错误,由于不知道如何确定a[i]是否为ENTER键的语句;

所以换了一种思维。

#include <stdio.h>
#include <string.h>
int main()
{
char a[51];
int i,t,n,k;
while(scanf("%d",&n)!=EOF)
{getchar();
while(n--)
{
gets(a);
if(a[0]>‘0‘&&a[0]<‘9‘)
{
printf("no\n");
break;
}
for(i=0;i<strlen(a);i++)
{
if((a[i]>=‘0‘&&a[i]<=‘9‘)||(a[i]>=‘a‘&&a[i]<=‘z‘)||(a[i]>=‘A‘&&a[i]<=‘Z‘)||(a[i]==‘_‘))
{
k=1;
}
else {k=0;break;}
}
if(k==0) printf("no\n");
else printf("yes\n");
}
}
return 0;
}

总结

1、首字符是字母或下划线
2、其余字符为字母或下划线或数字
3、若用scanf("%s",c);来读取字符数组,会读取不到空格;
4、此数据无需判断main等即可ac
5、
开头除了不能是数字外,还不可以是换行“Enter”
开头和结尾有空格应该没有问题的,但是我在自己的程序上是WA,但在这里是AC。
而且不用考虑main等关键字

统计C语言合法字符

原文:http://www.cnblogs.com/liuming1115/p/4464318.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!