| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2244 人关注过本帖
标题:模仿VxWorks和飞燕版主,我也做了一个代码高亮的小程序
只看楼主 加入收藏
zhaoyg
Rank: 1
等 级:新手上路
帖 子:328
专家分:0
注 册:2006-8-28
收藏
 问题点数:0 回复次数:18 
模仿VxWorks和飞燕版主,我也做了一个代码高亮的小程序
模仿VxWorks和飞燕版主,我也做了一个代码高亮的小程序

这是源程序:

#include <stdio.h>
#include <conio.h>
int main()
{
int a=0,n=0,c=0;
char ch;
printf("请输入字符串\n");

while ((ch=getchar())!='\n')
{
  //printf("请输入字符\n");
  if (ch=='i')
   a=1;
  if (ch!='e'&&ch!='i'&&a==1||ch=='*')
   c++;
  if (ch=='e'&&a==1)  //当a为1时表示在e之前有i
  {
   if (c==1)      //当c等于1时表示i与e之间只有一个其他字符  
   {
    n++;
    a=0;
   }
   c=0;     //如果此处不重新赋值为0,则下次c会在1的基础上继续递增
  }
}
    printf("刚才的字符中有%d次",n);
getch();
return 0;
}

转换后:
程序代码:
#include <stdio.h>
#include <conio.h>
int main()
{
int a=0,n=0,c=0;
char ch;
printf("请输入字符串\n");

while ((ch=getchar())!='\n')
{
  //printf("请输入字符\n");
  if (ch=='i')
   a=1;
  if (ch!='e'&&ch!='i'&&a==1||ch=='*')
   c++;
  if (ch=='e'&&a==1)  //当a为1时表示在e之前有i
  {
   if (c==1)      //当c等于1时表示i与e之间只有一个其他字符  
   {
    n++;
    a=0;
   }
   c=0;     //如果此处不重新赋值为0,则下次c会在1的基础上继续递增
  }
}
    printf("刚才的字符中有%d次",n);
getch();
return 0;
}

效果:
#include <stdio.h>
#include <conio.h>
int main()
{
int a=0,n=0,c=0;
char ch;
printf("请输入字符串\n");

while ((ch=getchar())!='\n')
{
  //printf("请输入字符\n");
  if (ch=='i')
   a=1;
  if (ch!='e'&&ch!='i'&&a==1||ch=='*')
   c++;
  if (ch=='e'&&a==1)  //当a为1时表示在e之前有i
  {
   if (c==1)      //当c等于1时表示i与e之间只有一个其他字符  
   {
    n++;
    a=0;
   }
   c=0;     //如果此处不重新赋值为0,则下次c会在1的基础上继续递增
  }
}
    printf("刚才的字符中有%d次",n);
getch();
return 0;
}


[[it] 本帖最后由 zhaoyg 于 2008-7-6 10:59 编辑 [/it]]

[[it] 本帖最后由 zhaoyg 于 2008-7-20 11:37 编辑 [/it]]

[[it] 本帖最后由 zhaoyg 于 2008-7-20 11:38 编辑 [/it]]

code.rar (15.33 KB)


[Colorful Code].rar (19.19 KB)
搜索更多相关主题的帖子: 飞燕版主 高亮 VxWorks 
2008-07-05 17:23
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
支持一下....有点不彻底...多加点颜色  

樱花大战,  有爱.
2008-07-05 17:30
yzd450471032
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-7-5
收藏
得分:0 
我想学
这个编程是干什么用的?我一点也看不懂~~
2008-07-05 17:30
zhaoyg
Rank: 1
等 级:新手上路
帖 子:328
专家分:0
注 册:2006-8-28
收藏
得分:0 
[bo][un]中学者[/un] 在 2008-7-5 17:30 的发言:[/bo]

支持一下....有点不彻底...多加点颜色  


颜色太多,虽然挺花哨,但适得其反。
个人觉得Visual C++的颜色种类就可以了。

“...有点不彻底...”
指的那一块呀?

[[it] 本帖最后由 zhaoyg 于 2008-7-5 17:45 编辑 [/it]]

麻雀飞上枝头变凤凰,而菜鸟的我飞上枝头却感冒了,为什么我的脑袋如此的不管用呢。
2008-07-05 17:33
VxWorks
Rank: 3Rank: 3
来 自:WindRiver
等 级:论坛游民
威 望:6
帖 子:859
专家分:68
注 册:2007-11-24
收藏
得分:0 
这东西想做好需要有个好的设计,设计好了编码很简单。
需要的知识储备是正则表达式,最好还掌握编译原理中的词法分析

我的fish已经开源了,你可以去看看我是怎么做的
https://bbs.bccn.net/thread-216338-1-1.html

我用了5天时间完成,一天时间查阅ANSI C资料,做总体设计,一天时间编码,三天时间测试,除虫,写文档。

第一步最重要,从C99标准中构造C词法的正则表达式,有了正则表达式就好做后面的工作了。飞燕因为这一步没有做好,有些BUG到现在还没有解决。
第二步,根据正则表达式构造DFA,如果学过编译原理中的词法分析这不是难事,没有学就利用现有的解析正则的库函数也可以,不过最简单的是使用lex

为了防止世界被破坏,为了守护世界的和平,贯彻爱与真实的邪恶,可爱又迷人的反派角色,VxWorks!
Don't ask me any question.I'm just here to buy soy sauce.
2008-07-05 17:44
VxWorks
Rank: 3Rank: 3
来 自:WindRiver
等 级:论坛游民
威 望:6
帖 子:859
专家分:68
注 册:2007-11-24
收藏
得分:0 
来秀一把fish的着色效果,着色方案模仿vim
#include <stdio.h>
#include <conio.h>
int main()
{
int a=0,n=0,c=0;
char ch;
printf("请输入字符串\n");

while ((ch=getchar())!='\n')
{
  //printf("请输入字符\n");
  if (ch=='i')
   a=1;
  if (ch!='e'&&ch!='i'&&a==1||ch=='*')
   c++;
  if (ch=='e'&&a==1)  //当a为1时表示在e之前有i
  {
   if (c==1)      //当c等于1时表示i与e之间只有一个其他字符  
   {
    n++;
    a=0;
   }
   c=0;     //如果此处不重新赋值为0,则下次c会在1的基础上继续递增
  }
}
    printf("刚才的字符中有%d次",n);
getch();
return 0;
}

为了防止世界被破坏,为了守护世界的和平,贯彻爱与真实的邪恶,可爱又迷人的反派角色,VxWorks!
Don't ask me any question.I'm just here to buy soy sauce.
2008-07-05 17:47
zhaoyg
Rank: 1
等 级:新手上路
帖 子:328
专家分:0
注 册:2006-8-28
收藏
得分:0 
我早已下了你的源码,但遗憾的是,压根看不懂

正则表达式怎么构造呀?

麻雀飞上枝头变凤凰,而菜鸟的我飞上枝头却感冒了,为什么我的脑袋如此的不管用呢。
2008-07-05 17:49
VxWorks
Rank: 3Rank: 3
来 自:WindRiver
等 级:论坛游民
威 望:6
帖 子:859
专家分:68
注 册:2007-11-24
收藏
得分:0 
看不懂?不会吧,还有人给我发邮件说代码写的很清晰呢
我觉得fish很简陋,所以注释很少

我的关键代码是main.c,get_conf.c,fish.lex
看看makefile就知道他们的关系

你学过正则表达式就知道该怎么构造了

为了防止世界被破坏,为了守护世界的和平,贯彻爱与真实的邪恶,可爱又迷人的反派角色,VxWorks!
Don't ask me any question.I'm just here to buy soy sauce.
2008-07-05 17:55
zhaoyg
Rank: 1
等 级:新手上路
帖 子:328
专家分:0
注 册:2006-8-28
收藏
得分:0 
也许是我真太菜了
我下的好几个他人的源码,都没有一个看懂过。

“正则”我只听说过,也知道他他该是干什么的,仅次而已。

麻雀飞上枝头变凤凰,而菜鸟的我飞上枝头却感冒了,为什么我的脑袋如此的不管用呢。
2008-07-05 17:59
zhaoyg
Rank: 1
等 级:新手上路
帖 子:328
专家分:0
注 册:2006-8-28
收藏
得分:0 
makefile
我也只在linux上安装软件是见到过

麻雀飞上枝头变凤凰,而菜鸟的我飞上枝头却感冒了,为什么我的脑袋如此的不管用呢。
2008-07-05 17:59
快速回复:模仿VxWorks和飞燕版主,我也做了一个代码高亮的小程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015059 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved