C语言编程题,输入一个字符串判断是不是合法的标识符如果合法输出yes如果不合法输出no

如题所述

第1个回答  推荐于2017-05-21
#include <stdio.h>
int main()
{
char fu[80];
int i;
scanf("%s",fu);
if(fu[0]=='_'||(fu[0]>='a'&&fu[0]<='z')||(fu[0]>='A'&&fu[0]<='Z'))
{
for(i=1;fu[i]!=0;i++)
{
if(fu[0]=='_'||(fu[0]>='a'&&fu[0]<='z')||(fu[0]>='A'&&fu[0]<='Z')||(fu[0]>='0'&&fu[0]<='9')) continue;
else
{
printf("no\n");
break;
}
}
if(fu[i]==0) printf("yes\n");
}
else printf("no\n");
return 0;
}本回答被网友采纳
第2个回答  2015-06-12
for (i = 1; a[i] != '\0'; i++) // a[i] != '\0' 不等于追问

我那个写的不对但不是这里是算法出来问题

再说这里是正确的

看你也是半吊子水准不要灌水了

追答

你if 判断的 a[i] 像 !(a[i] == '_');后面都应该是 !;
还有就是问问题 最好贴代码,不要截图;不要偷懒

第3个回答  2015-06-12
你要问什么?追问

如何写

追答

#include
#include
#include
main(){
char ident[33];
gets(ident);
if(!isalpha(ident[0])&&ident[0]!='_'){
puts("no");return 1;}
for(int i=0;i<strlen(ident);i++)if(!isalnum(ident[i])&&ident[i]!='_'){puts("no");return 1;}
puts("yes");
return 0;}

最小程序,采纳吧。😊

注:isalpha:是否是字母,isalnum:是否是字母Or数字

现成函数,为什么不去直接用呢?

#include
#include
#include
main()
{
char ident[33];
gets(ident);
if (!isalpha(ident[0]) && ident[0] != '_')
{
puts("no");
return 1;
}
for (int i = 0; i < strlen(ident); i++)
if (!isalnum(ident[i]) && ident[i] != '_')
{
puts("no");
return 1;
}
puts("yes");
return 0;
}
更清楚点

#include
#include
#include
main()
{
char ident[33];
gets(ident);
if (!isalpha(ident[0]) && ident[0] != '_')
{
puts("no");
return 1;
}
for (int i = 0; i < strlen(ident); i++)
if (!isalnum(ident[i]) && ident[i] != '_')
{
puts("no");
return 1;
}
puts("yes");
return 0;
}
更清楚点

追问

看不懂啊,

追答

自己查一下不知道的函数

不然学不好的

相似回答