这个题目字典的输入是一个问题
遇到空行结束
那么如何使用好scanf 和 gets呢,数据量大肯定还是要用C的I/O的
sscanf是一个很不错的函数
刚好解决了这个问题
我们知道scanf会把换行符留在缓冲区中,而gets()读取的是一行
sscanf对于字典读入作用很好
基本算法: 排序 + 二分
数据量大,参考的网上别人写的
#include <fstream>
#include <string.h>
#include <stdio.h>
#include <algorithm>
#define _cdebbug
using std::sort;
//全局数据
char temp1[200];
#define MAX_WORD_LEN 11
#define MAX_DICTION_ITEM (100000 + 10)
struct Dictionary
{
char szWord[MAX_WORD_LEN];
char szEnglish[MAX_WORD_LEN];
};
Dictionary diction[MAX_DICTION_ITEM];
bool CmpDictionItem(Dictionary one, Dictionary two)
{
return strcmp(one.szWord, two.szWord) < 0;
}
int FindEnglish(char* pszWord, int nItemNum)
{
int nBeg = 0, nEnd = nItemNum - 1;
int nCmp = 0;
while (nBeg <= nEnd)
{
int nMid =