北航研究生复试2012上机第三题:统计关键字出现的位置

本文介绍了一个C语言程序,该程序能够从输入的代码中查找并按顺序输出关键字if、while和for的位置。通过字符串匹配算法,程序实现了从文件读取主串,并针对每个关键字进行匹配,最后将匹配到的关键字及其位置进行排序输出。
摘要由CSDN通过智能技术生成

输入一行C语言代码,查找关键字if,while,for并按照出现顺序输出。输出格式:
关键字:位置
关键字:位置

还是字符串匹配的问题,为了方便,程序中本人写成从文件中读取主串,可以按照题目要求,改成控制台输入。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define MAXSIZE 100

const char* fileName = "buaa123.in";
const char* keyword1 = "if";
const char* keyword2 = "while";
const char* keyword3 = "for";

typedef struct KeyWord{     //关键字节点 包括索引index和关键字字符串keyword[]
    int index;
    char keyword[6];
};

char* ReadFile(const char* fileName, int &len);     //从文件中读取主串
void BF(char* mstr,const char* sstr, KeyWord* arr, int &size);      //字符串匹配
bool Judge(char
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值