用C语言请你编写一个函数,将C语言源程序中的注释全部删去。 函数原型 // 删除注释 void Pack(FILE *src, FILE dst); 说明:参数 src 和 dst 均为文件指针,其中:src 指示原始程序文件,dst 指示整理后得到的文件。 C语言规定:注释以 / 开始,以 / 结束。注释可以跨行,不允许嵌套。字符串中的 / 和 */ 不是注释。 此外C语言还规定:注释相当于一个空白字符。因此,注释被删除后应补入一个空格。
时间: 2024-03-18 15:39:52 浏览: 20
以下是本题的C语言代码实现:
```c
#include <stdio.h>
void Pack(FILE *src, FILE *dst) {
int ch, nextch;
ch = getc(src);
while (ch != EOF) {
nextch = getc(src);
if (ch == '/') {
if (nextch == '/') { // 删除单行注释
while ((nextch = getc(src)) != EOF && nextch != '\n');
putc(' ', dst); // 注释删除后补入一个空格
} else if (nextch == '*') { // 删除多行注释
ch = getc(src);
nextch = getc(src);
while (ch != '*' || nextch != '/') {
ch = nextch;
nextch = getc(src);
}
putc(' ', dst); // 注释删除后补入一个空格
} else {
putc(ch, dst);
putc(nextch, dst);
}
} else {
putc(ch, dst);
}
ch = nextch;
}
fclose(src);
fclose(dst);
}
```
使用方法:传入两个参数,分别为源程序文件指针和整理后文件指针。函数会将源程序文件中的注释全部删除,并将结果写入整理后的文件中。