菜de嚣张 发表于 2021-6-6 10:06:26

给一个文件,如何统计文件中两个*/之间的字符个数?

给一个文件,如何统计文件中两个*/之间的字符个数?

wp231957 发表于 2021-6-6 10:16:12

拿个例子来

菜de嚣张 发表于 2021-6-6 10:24:24

一个好的程序要有一定比例的注释。编写一个程序统计一个C源文件中注释所占的百分比。百分比计算公式为:程序注释中字符总数(/*和*/除外的所有字符)除以程序文件中总字符数(程序文件中的所有字符)。

注:只考虑/**/内的注释,而且要考虑注释跨行的情况。不要考虑其它情况,比如//打头的行注释,比如/*或*/作为字符串的子串的情况。



【输入形式】



从当前目录下的filein.c源程序文件获得输入。



【输出形式】



向控制台输出注释所占百分比,百分数无小数(小数部分直接截掉,不要四舍五入),后跟百分号%。



【样例输入】



假设filein.c的内容为:



void main()

{

FILE * in;

/*Open the file*/

if((in=fopen("in.txt","r"))==NULL)

{

printf("Can’t open in.txt!");

return;

}

/*Close the file,

and return.*/

fclose(in);

}



【样例输出】



22%



【样例说明】



filein.c文件的总字符数为179,注释中的字符数为41,则注释所占百分比为22%。

菜de嚣张 发表于 2021-6-6 10:25:13

这是我们的一个作业题,还有一个问题是如何写入文件?

wp231957 发表于 2021-6-6 12:25:32

菜de嚣张 发表于 2021-6-6 10:25
这是我们的一个作业题,还有一个问题是如何写入文件?

import re

s=str(open("test.c","r").read())
lst=re.findall(r"\/\*(.+?)\*\/",s,re.M|re.S)
zs_len=0
for x in lst:
    zs_len+=len(x)
print("{:.0f}%".format(zs_len/len(s)*100))

'''
   样本测试:
      PS E:\wp> py test6.py
      22%
'''

wp231957 发表于 2021-6-6 12:41:59

菜de嚣张 发表于 2021-6-6 10:25
这是我们的一个作业题,还有一个问题是如何写入文件?

看错了,我还以为是python板块

菜de嚣张 发表于 2021-6-6 23:22:03

菜de嚣张 发表于 2021-6-6 23:22:43

请问,这个是出现啥问题了?

菜de嚣张 发表于 2021-6-6 23:32:15

找到问题了,但是有些测试是对的,有些不对

wp231957 发表于 2021-6-7 10:44:17

菜de嚣张 发表于 2021-6-6 23:32
找到问题了,但是有些测试是对的,有些不对

哪些数据不对,发出来看看

菜de嚣张 发表于 2021-6-7 22:45:32

不知道他测试的数据内容,但就是对不上
页: [1]
查看完整版本: 给一个文件,如何统计文件中两个*/之间的字符个数?