用python代码去掉CPP代码中的注释

最近的作业,第一次正儿八经地使用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(
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值