c语言判断是否合法的标识符.

2025-03-31 20:39:05
推荐回答(1个)
回答1:

c++里面的标识符是以字母或下滑线打头,后面加上任意数字,字母,下划线.ff
ai_2里面有个空格,所以不是标识符.
画个有限状态自动机就很清楚了
比如s代表开始状态,s1代表标识符首字合法状态,es代表输入合法,ef代表输入非法.a代表字母或下滑线,
b代表任意数字,字母,下划线,e代表结束符,那么自动机如下
s下输入字符属于a的话进入s1,否则经入ef;
s1下输入字符属于a或b,进入es,否则进入ef
es下输入字符属于a或b,进入es,否则进入ef
ef下输入结束符号,进入最终状态,并且得到输入的不是标识符
es下输入结束符号,进入最终状态,并且得到输入的是标识符