首页 > 就业 > 笔试

微软实习生笔试题目最后一题

微软实习生笔试题目最后一题



微软实习生2009笔试题目最后一题

虽然咱被微软给鄙视了,但是回来还是写了写最后一题的程序。当时只有半个小时,可我回来晃晃悠悠地写也写了起码多于1个小时……看来咱跟微软的要求差距还是蛮大的啊……哎……怨念……

// test.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"

#define BUFMAX 100

//Find frequency of words of file-B.txt in file-A.txt
void Find (string &filenameA, string &filenameB)
{
string tempA, tempB;
char chA[BUFMAX], chB[BUFMAX];
int cnt = 0, match = 0;

if ( (filenameA.length()==0) || (filenameB.length()==0) )
{
cout << "Invalid input filename!" << endl;
return ;
}

ifstream infileA ( filenameA.c_str() );
ifstream infileB ( filenameB.c_str() );

if ( infileA.fail() || infileB.fail() )
{
cout << "Cannot open input files!" << endl;
return ;
}

while ( getline(infileB, tempB) )
{
memcpy ( chB, tempB.c_str(), tempB.length()+1 );
cnt = 0;

infileA.seekg (0, ios::beg);

while ( !infileA.eof() )
{
infileA >> tempA;

if (tempA == tempB)
cnt++;
else
{
memcpy (chA, tempA.c_str(), tempA.length()+1);

match = 1;

for (int i=0, j=0; ; i++, j++)
{

if (!chB[i] && !chA[j])
break;

else if ( !( chB[i] && chA[j] ))
{
match = 0;
break;
}

if (chB[i] == '?')
continue;

else if (chB[i] == '*')
for (;chA[j+1]!=chB[i+1];j++)
{
if (chA[j+1] == '\0')
break;
}

else if (chA[j] != chB[i])
{
match = 0;
break;
}

}

if (match)
cnt++;
}
}

cout << tempB << ' ' << cnt << endl;
}

infileA.close();
infileB.close();
}

int _tmain(int argc, _TCHAR* argv[])
{
string filenameA, filenameB;

cout << "Please input two files' name:" << endl;
cin >> filenameA >> filenameB;

Find (filenameA, filenameB);

return 0;

    版权声明:此文自动收集于网络,若有来源错误或者侵犯您的合法权益,您可通过邮箱与我们取得联系,我们将及时进行处理。

    本文地址:https://www.gunzhua.com/jiuye/bishi/87358.html

相关内容

热门阅读
随机推荐