如何用c#语言识别及分离c语言的操作符和操作数?求大神指教!

我想使用c#语言对一段c语言的代码进行解剖,分离其中的操作符和操作数(关键字和变量),不知道该如何实现这个功能,虚心求教~

这个简单,先利用数组或者别的方式,依照C语言的那些操作符,分类建好一张表,让后以分号为结尾单位,去读这段代码,搜索这段语句是否有和操作符表对应的字符,若有就是操作符,对不上的就是操作数。
当然了如果是要分析复杂语句,或者是跟复杂的提取任务,那么你还要做个指针数组,操作符表里的每个操作符,你都要对应的按照C语言对这个操作符的定义,优先级,操作顺序,协议一个对应的解析函数,一旦读取代码时遇到了这个操作符,需要做复杂判断的时候,那么你就把这个操作符前后的字符,或者把以分号结尾的整条语句作为参数赋进去判断。
当然了,你这个是C#,不能做指针数组,那就分装一个解析类吧,里面建立成员函数的方式来做吧。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-10-31
不容易,如果是代码比较规范的,空格较多的,好弄,没有空格的,只好先处理代码,可以先把非字符和带括号的函数都找出来,用空格或者逗号什么的替换掉,这样代码就变成是有空格分隔的关键字和变量了。处理后的文件内容可以直接导入的数据库的表格里,再筛选对比出所有的关键字就行了。
不用数据库也行,筛选比较关键字的时候要写得代码多些,字符串操作要多些,思路而已,仅供参考。

怎样用c#编写c语言的程序?
1、首先使用新建一个工程和.c文件。2、然后输入头文件#include和主函数void main()。3、输入后就要定义变量类型并且初始化。4、然后使用for语言求和。5、输入后再进行输出。6、最后可以看到编译正常运行,这样问题就解决了。

如何让计算机识别字符串的数学计算式c#
找一本数据结构的书,讲栈的地方都会有这个表达式处理的例子

软件开发高手指点一下
高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类: 解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这...

c#如何能像c语言那样可连续输入2个数值呢。像c语言这样的:scanf("%d...
ReadLine()获取的是用户输入的一行字符,也就是说加入用户输入:1 2 3,那么这里Console.ReadLine()就返回“1 2 3”,然后你只要用Console.ReadLine().Split(' ')就能获得一个字符串数组,长度为3,数组元素分别为“1”,"2","3"。明白了么?你唯一要做的就是和用户协定好输入内容的分隔符。

网上说C#和C语言差不多一样,那用c#语言能写单片机吗?
谁告诉你C#和C差不多了?差远了,C#不能写单片机 C#是微软专门为.NET定制的一门语言,在编译的时候会先编译成“中间语言”然后进行编译,它没有直接和硬件接触,得运行在.Net Framework上面

C#的数组与C语言的数组定义和使用有那些差别?
在 C# 中,将方括号放在标识符后是不合法的语法。\\x0d\\x0a\\x0d\\x0aint[] table; \/\/ not int table[]; \\x0d\\x0a\\x0d\\x0a另一细节是,数组的大小不是其类型的一部分,而在 C 语言中它却是数组类型的一部分。这使您可以声明一个数组并向它分配 int 对象的任意数组,而不管数组...

我现在学习c语言,学的很烂,希望指教一下
第一:C语言语法结构很简洁精妙,写出的程序也很高效,很便于描述算法,大多数的程序员愿意使用C语言去描述算法本身,所以,如果你想在程序设计方面有所建树,就必须去学它。 第二:C语言能够让你深入系统底层,你知道的操作系统,哪一个不是C语言写的?所有的windows,Unix,Linux,Mac,os\/2,没有一个里外的,如果你不懂...

操作符操作符分类
3. C++操作符继承了C语言的所有操作符,并增加了模板、模板函数、模板类等特有操作符,以及用于处理类型信息的运算符。4. C#操作符则包括算术、关系、逻辑、位、条件、引用、类型转换等操作符,同时C#还具有丰富的语言特性,如委托、泛型、属性等特有的操作符。5. Perl操作符涵盖了算术、比较、逻辑、...

如何用C语言统计一个文档中每个字母的个数和出现的频率
用文件操作函数打开文件,挨着读入字符,统计每个字符出现了多少次,最后用每个字符出现的次数除以所有次数,得到出现频率。例程:\/*统计一个文件里各个字符出现的次数,这里只统计了26个字母,如果还有更多的字符的话,将数组再扩大就行了*\/#include<stdio.h>#include<math.h>void stat(char *file,int *...

C语言 运算符和scanf函数
1.两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\\0'为止。strcmp的返回值是一个整型数int,两个字符串相等返回值0,若不相等返回值是两个字符串从开始看起第一个不相等的字符的ASIC2值之差(前一个减去后一个)。2.strcmp中的形参是两个指向字符串的指针变量...

相似回答
大家正在搜