c语言 输入一个字符串,判断其是否是C的合法标识符。
输入一个长度不超过50的字符串。如果输入数据是C语言的合法标识符,则输出yes,否则,输出no。例:输入:fi8x_a输出:yes...
输入一个长度不超过50的字符串。如果输入数据是C语言的合法标识符,则输出yes,否则,输出no。
例:输入:fi8x_a
输出:yes 展开
例:输入:fi8x_a
输出:yes 展开
4个回答
展开全部
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
char a[50];
int i;
while(gets(a)){
if(!(a[0]>='a' && a[0]<='z' || a[0]>='A' && a[0]<='Z' || a[0]=='_'))//不以字母或下划线开头则不是
printf("no\n");
else{
for(i=1;a[i];i++)//中间若有不是字母、数字、下划线的则不是
if(!(a[i]>='a' && a[i]<='z' || a[i]>='A' && a[i]<='Z' || a[i]=='_' || a[i]>='0' && a[i]<='9')){
printf("no\n");
break;
}
if(a[i]=='\0')//排除以上情况剩下的肯定是
printf("yes\n");
}
}
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你吧c语言的关键字列出来放到数组中,先比较不在这个数组中,然后再截取输入的字符串,第一个必须是字母或者下划线,再遍历此字符串各个字符是否合法,用多重if判断下就好
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <ctype.h>
#include <stdio.h>int main(void)
{
int n, d, i;
char sym[64]; scanf("%d%*c", &n);
while (n--)
{
gets(sym);
if (sym[0] != '_' && !isalpha(sym[0]))
{
puts("no");
continue;
}
for (d = i = 1 ; sym[i] ; i++)
{
if (!isalnum(sym[i]) && sym[i] != '_')
{
d = 0;
break;
}
}
puts(d ? "yes" : "no");
} return 0;
}
#include <stdio.h>int main(void)
{
int n, d, i;
char sym[64]; scanf("%d%*c", &n);
while (n--)
{
gets(sym);
if (sym[0] != '_' && !isalpha(sym[0]))
{
puts("no");
continue;
}
for (d = i = 1 ; sym[i] ; i++)
{
if (!isalnum(sym[i]) && sym[i] != '_')
{
d = 0;
break;
}
}
puts(d ? "yes" : "no");
} return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询