Code:
#include <vector.h>
#include <fstream.h>
#include <iostream.h>
#include <string.h>
using namespace std;
const char let2[]={'A','B','C'},let3[]={'D','E','F'},let4[]={'G','H','I'},
let5[]={'J','K','L'},let6[]={'M','N','O'},let7[]={'P','R','S'},
let8[]={'T','U','V'},let9[]={'W','X','Y'};
//ifstream cin("namenum.in");
ifstream dic("c:\\namenumdic.txt");
//ofstream cout("namenum.out");
void letter(vector <char>, char[3], int);
void change(char[3], const char[3]);
bool test(string, char[3], int);
int main()
{
string word;
char num1[12];
vector <string> ans;
vector <char> num;
int x;
char letter1[3],letter2[3],letter3[3],letter4[3],letter5[3],letter6[3],
letter7[3],letter8[3],letter9[3],letter10[3],letter11[3],letter12[3];
cin >> num1;
//cout << sizeof(num1);
for(x=0;x<13;x++)
{
if(num1[x]!='\0')
num.push_back(num1[x]);
else
break;
}
x=0;
letter(num, letter1, x);
while(!dic.eof())
{
dic >> word;
if(test(word,letter1,x) && word.length()==num.size())
ans.push_back(word);
}
if(num.size()>1)
{
x++;
letter(num, letter2, x);
for(int c=0;c<ans.size();c++)
if(!test(ans[c],letter2,x))
ans[c].erase();
}
if(num.size()>2)
{
x++;
letter(num, letter3, x);
for(int c=0;c<ans.size();c++)
if(ans[c]!="0")
if(!test(ans[c],letter3,x))
ans[c].erase;
}
if(num.size()>3)
{
x++;
letter(num, letter4, x);
for(int c=0;c<ans.size();c++)
if(ans[c]!="0")
if(!test(ans[c],letter4,x))
ans[c].erase;
}
if(num.size()>4)
{
x++;
letter(num, letter5, x);
for(int c=0;c<ans.size();c++)
if(ans[c]!="0")
if(!test(ans[c],letter5,x))
ans[c].erase;
}
if(num.size()>5)
{
x++;
letter(num, letter6, x);
for(int c=0;c<ans.size();c++)
if(ans[c]!="0")
if(!test(ans[c],letter6,x))
ans[c].erase;
}
if(num.size()>6)
{
x++;
letter(num, letter7, x);
for(int c=0;c<ans.size();c++)
if(ans[c]!="0")
if(!test(ans[c],letter7,x))
ans[c].erase;
}
if(num.size()>7)
{
x++;
letter(num, letter8, x);
for(int c=0;c<ans.size();c++)
if(ans[c]!="0")
if(!test(ans[c],letter8,x))
ans[c].erase;
}
if(num.size()>8)
{
x++;
letter(num, letter9, x);
for(int c=0;c<ans.size();c++)
if(ans[c]!="0")
if(!test(ans[c],letter9,x))
ans[c].erase;
}
if(num.size()>9)
{
x++;
letter(num, letter10, x);
for(int c=0;c<ans.size();c++)
if(ans[c]!="0")
if(!test(ans[c],letter10,x))
ans[c].erase;
}
if(num.size()>10)
{
x++;
letter(num, letter11, x);
for(int c=0;c<ans.size();c++)
if(ans[c]!="0")
if(!test(ans[c],letter11,x))
ans[c].erase;
}
if(num.size()>11)
{
x++;
letter(num, letter12, x);
for(int c=0;c<ans.size();c++)
if(ans[c]!="0")
if(!test(ans[c],letter12,x))
ans[c].erase;
}
for(int c=0;c<ans.size();c++)
cout << ans[c] << endl;
return 0;
}
void letter(vector <char> num, char let[3], int x)
{
switch(num[x])
{
case '2':change(let,let2);break;
case '3':change(let,let3);break;
case '4':change(let,let4);break;
case '5':change(let,let5);break;
case '6':change(let,let6);break;
case '7':change(let,let7);break;
case '8':change(let,let8);break;
case '9':change(let,let9);break;
}
}
void change(char let[3], const char constant[3])
{
for(int c=0;c<3;c++)
let[c]=constant[c];
}
bool test (string word, char let[3], int x)
{
for(int c=0;c<3;c++)
if(word[x]==let[c])
return true;
return false;
}
It's a little long... but I get this error: