最近的作业,第一次正儿八经地使用python。主要思路是,将能干扰注释符号的内容(CPP里就是字符串了)列举出来,一共有“"”“//”和“/*”,在一段文本中,这三个符号谁先出现,则谁的优先级高,直到他们的结束符“"”“\n”和“*/”出现,这中间的内容不需要管。get1stSymPos就是做这么一件事
然后核心函数rmCommentsInCFile就是从0到字符串结尾,开始找最先出现的符号,如果是字符串,就将坐标移到字符串后面,如果是注释,就将之替换成空格
import logging
logging.basicConfig(level=logging.INFO)
#全局变量,清除注释用,对能干扰清除注释的东西,进行判断
g_DictSymbols = {'"': '"', '/*': '*/','//':'\n'}
#判断dictSymbols的key中,最先出现的符号是哪个,并返回其所在位置以及该符号
def get1stSymPos(s, fromPos = 0):
listPos = [] #位置,符号
for b in g_DictSymbols:
pos = s.find(b, fromPos)
listPos.append((pos,b)) #插入位置以及结束符号
minIndex = -1 #最小位置在listPos中的索引
index = 0 #索引
while index < len(