Lex 程序计算第二个字符为“a”的字符串的数量
Lex program to count number of strings having ‘a’ as the second character
我编写了一个程序来计算以 'a' 作为字符串的第二个字符的字符串的数量。我尝试使用 lex 运算符 的几种模式,也尝试使用 lex 程序启动条件 ,但其中 none 有效。这是我写的程序:
%{
#include<stdio.h>
#include<string.h>
int count=0;
%}
%%
(^[a-z])/(a) {count++;}
%%
int yywrap(void){}
int main()
{
yylex();
printf("\n%d strings with 'a' as second letter",count);
return 0;
}
这不是一个计算第二个字符为 'a'
的所有字符串的程序。为此你应该改变
(^[a-z])/(a) {count++;}
进入
^.a {count++;}
(我应该也承认一个大写 'A'
,如果你有兴趣,但谁知道你有这个规格 post)
正如您编写的正则表达式,它是一个程序,用于计算以字母开头并以 'a'
字符继续的行数(post 上下文运算符 /
在这里没有太多要说的,因为第二个 'a'
字符将被再次读取,没有结果,因为词法分析器的其余部分没有考虑到这一事实。唯一的事情是你只会将行的第一个字符放入变量 yytext
。但是你不使用 yytext
做任何事...
可能,如果你post你正在尝试做的事情(整体情况)可以给你更多的帮助,但你没有...
我编写了一个程序来计算以 'a' 作为字符串的第二个字符的字符串的数量。我尝试使用 lex 运算符 的几种模式,也尝试使用 lex 程序启动条件 ,但其中 none 有效。这是我写的程序:
%{
#include<stdio.h>
#include<string.h>
int count=0;
%}
%%
(^[a-z])/(a) {count++;}
%%
int yywrap(void){}
int main()
{
yylex();
printf("\n%d strings with 'a' as second letter",count);
return 0;
}
这不是一个计算第二个字符为 'a'
的所有字符串的程序。为此你应该改变
(^[a-z])/(a) {count++;}
进入
^.a {count++;}
(我应该也承认一个大写 'A'
,如果你有兴趣,但谁知道你有这个规格 post)
正如您编写的正则表达式,它是一个程序,用于计算以字母开头并以 'a'
字符继续的行数(post 上下文运算符 /
在这里没有太多要说的,因为第二个 'a'
字符将被再次读取,没有结果,因为词法分析器的其余部分没有考虑到这一事实。唯一的事情是你只会将行的第一个字符放入变量 yytext
。但是你不使用 yytext
做任何事...
可能,如果你post你正在尝试做的事情(整体情况)可以给你更多的帮助,但你没有...