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

这篇博客介绍如何使用Python处理C++代码,通过识别和处理字符串与注释符号,来移除代码中的注释。核心是get1stSymPos函数,用于找到首个特殊符号的位置,然后rmCommentsInCFile函数遍历文本,处理字符串和注释,将其替换为空格。
摘要由CSDN通过智能技术生成

最近的作业,第一次正儿八经地使用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(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值