确定有穷自动机测试代码
来源:互联网 发布:安卓app源码 编辑:程序博客网 时间:2024/05/23 11:47
#include "stdio.h"
/*
Q:state set ;
E:input table;
state transition function;
q0;
F:accept state set;
*/
#define False ((char)0)
#define True (!False)
int IS_WORD_CHAR(char c)
{
printf("c=%c\r\n", c);
if('a'<=c && 'z'>=c)
{
return True;
}
else if('A'<=c && 'Z'>=c)
{
return True;
}
else
{
printf("xxxxxxxxxxxxxxxxxxxxxxxx\r\n");
return False;
}
}
int count_word(const char *text)
{
enum _State
{
STAT_INIT,
STAT_IN_WORD,
STAT_OUT_WORD,
}state = STAT_INIT;
int count = 0;
const char *p = text;
for (p = text; *p != '\0'; p++)
{
switch(state)
{
case STAT_INIT:
{
if(IS_WORD_CHAR(*p))
{
state = STAT_IN_WORD;
}
else
{
state = STAT_OUT_WORD;
}
break;
}
case STAT_IN_WORD:
{
if(!IS_WORD_CHAR(*p))
{
count++;
state = STAT_OUT_WORD;
}
break;
}
case STAT_OUT_WORD:
{
if(IS_WORD_CHAR(*p))
{
state = STAT_IN_WORD;
}
break;
}
default:
break;
}
}
if(STAT_IN_WORD == state)
{
count++;
}
return (count);
}
const char *data = " abc a. hello girls, code-error fix! something todo end";
int main(void)
{
int num = count_word(data);
printf("count_word=%d\r\n", num);
/*
Q:state set ;
E:input table;
state transition function;
q0;
F:accept state set;
*/
#define False ((char)0)
#define True (!False)
int IS_WORD_CHAR(char c)
{
printf("c=%c\r\n", c);
if('a'<=c && 'z'>=c)
{
return True;
}
else if('A'<=c && 'Z'>=c)
{
return True;
}
else
{
printf("xxxxxxxxxxxxxxxxxxxxxxxx\r\n");
return False;
}
}
int count_word(const char *text)
{
enum _State
{
STAT_INIT,
STAT_IN_WORD,
STAT_OUT_WORD,
}state = STAT_INIT;
int count = 0;
const char *p = text;
for (p = text; *p != '\0'; p++)
{
switch(state)
{
case STAT_INIT:
{
if(IS_WORD_CHAR(*p))
{
state = STAT_IN_WORD;
}
else
{
state = STAT_OUT_WORD;
}
break;
}
case STAT_IN_WORD:
{
if(!IS_WORD_CHAR(*p))
{
count++;
state = STAT_OUT_WORD;
}
break;
}
case STAT_OUT_WORD:
{
if(IS_WORD_CHAR(*p))
{
state = STAT_IN_WORD;
}
break;
}
default:
break;
}
}
if(STAT_IN_WORD == state)
{
count++;
}
return (count);
}
const char *data = " abc a. hello girls, code-error fix! something todo end";
int main(void)
{
int num = count_word(data);
printf("count_word=%d\r\n", num);
}
0 0
- 确定有穷自动机测试代码
- 确定有穷自动机
- 确定的有穷自动机正则表达式求值
- 编译原理,确定有穷自动机DFA最小化
- 自动机理论、语言和计算导论---有穷自动机:确定型有穷自动机(DFA)
- 有穷自动机
- 有穷自动机
- 正规式转确定有穷自动机(NFA)
- 正规式转确定有穷自动机(NFA)
- 有穷状态自动机
- 用有穷自动机解析Cookie
- 有穷自动机的构造实验
- 利用有穷自动机匹配字符串
- 有穷自动机的相关概念
- 正则表达式与有穷自动机
- 不确定的有穷自动机的确定化代码-(子集法)
- 用有穷自动机解一道面试题
- java实现的有穷状态自动机(FA)
- U-boot第一阶段分析
- C++实现PING命令
- opengl函数
- Spring mvc原理
- googlemock
- 确定有穷自动机测试代码
- iOS开发(Objective-C)常用库索引
- ExtJs中Ext.Ajax.request()跟getForm().submit()得用法
- Archlinux 下的 mariadb 和 jdbc
- JDBC与JNDI这两种连接方式有什么区别
- sscanf用法
- 新妈妈哺乳,真的很难吗?
- 纯CSS3实现彩色缎带效果
- Project Euler:Problem 35 Circular primes