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

输入一个长度不超过50的字符串。如果输入数据是C语言的合法标识符,则输出yes,否则,输出no。例:输入:fi8x_a输出:yes... 输入一个长度不超过50的字符串。如果输入数据是C语言的合法标识符,则输出yes,否则,输出no。
例:输入:fi8x_a
输出:yes
展开
 我来答
刺友互
高粉答主

2019-06-07 · 每个回答都超有意思的
知道答主
回答量:3979
采纳率:100%
帮助的人:72.7万
展开全部

1、使用中文当标识符,其前提是编译器支持中文当标识符,C++11之后,通用字符名覆盖到了汉字。

2、使用中文作为标识符时,其头文件与原来一样。

3、程序中的名字空间,保持不变。

4、可以将保留字定义为中文,用define定义。

5、可以用类型名,直接定义中文的变量名。

6、中文标识符的使用,和普通标识符一样。

wchyumo2011
推荐于2017-09-03 · TA获得超过2万个赞
知道大有可为答主
回答量:5810
采纳率:79%
帮助的人:2833万
展开全部
//#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;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Bakerzks
2017-08-22 · NullPointExceptions
Bakerzks
采纳数:251 获赞数:1072

向TA提问 私信TA
展开全部
你吧c语言的关键字列出来放到数组中,先比较不在这个数组中,然后再截取输入的字符串,第一个必须是字母或者下划线,再遍历此字符串各个字符是否合法,用多重if判断下就好
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a1012144015
2015-04-25 · TA获得超过6415个赞
知道大有可为答主
回答量:9038
采纳率:40%
帮助的人:1353万
展开全部
#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;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式