c语言编写程序【问题描述】程序相似性比较方法之一就是将源程序中无关信息如变量名、函数名、空白符及注释等删除后的代码进行比较。编写程序将当前目录下C源文件inputc中的自定义函数名、空白字符删除后写到另一个文件outputc中。【输入形式】要处理的C源文件名为inputc在当前目录下并假设该文件符合以下条件:1、所有自定义的函数都在main函数之前有函数原型说明;2、自定义函数的个数不超过10个函
#include <stdio.h>
#include <string.h>
void removeWhitespace(char* str) {
int i = 0, j = 0;
while (str[i]) {
if (str[i] != ' ' && str[i] != '\t' && str[i] != '\n') {
str[j++] = str[i];
}
i++;
}
str[j] = '\0';
}
void removeFunctionName(char* str, char* functionName) {
int i = 0, j = 0;
int functionNameLen = strlen(functionName);
while (str[i]) {
if (strncmp(&str[i], functionName, functionNameLen) == 0 &&
(str[i + functionNameLen] == ' ' || str[i + functionNameLen] == '(')) {
i += functionNameLen;
while (str[i] && str[i] != ')') {
i++;
}
if (str[i] == ')') {
i++;
}
continue;
}
str[j++] = str[i++];
}
str[j] = '\0';
}
int main() {
FILE* inputFile = fopen("input.c", "r");
FILE* outputFile = fopen("output.c", "w");
char line[100];
while (fgets(line, sizeof(line), inputFile)) {
removeWhitespace(line);
removeFunctionName(line, "getMax");
removeFunctionName(line, "getMin");
fputs(line, outputFile);
}
fclose(inputFile);
fclose(outputFile);
return 0;
}
``
原文地址: http://www.cveoy.top/t/topic/hyTs 著作权归作者所有。请勿转载和采集!