#include <iostream>
#include <stdlib.h>
#include <fstream>
#include <vector>
#include <string>
using namespace std;
string conversion_caracter (vector<int> &v2, int &i){
string TC;
if(v2[i]==2){
TC="abc";
}
else if(v2[i]==3){
TC="def";
}
else if(v2[i]==4){
TC="ghi";
}
else if(v2[i]==5){
TC="jkl";
}
else if(v2[i]==6){
TC="mno";
}
else if(v2[i]==7){
TC="pqrs";
}
else if(v2[i]==8){
TC="tuv";
}
else if(v2[i]==9){
TC="wxyz";
}
return TC;
}
void eliminar (vector <string> &v3,int &p){
for (int i=p;i<v3.size()-1;i++)
v3[i]=v3[i+1];
v3.pop_back();
}
vector<string> funcion_iterativa (vector<string> &v, vector<int> &v1){
vector<string> CP(v.size());
for(int i=0; i<v.size(); i++){
CP[i]=v[i];
}
for(int i=0; i<v1.size(); i++){
string aux=conversion_caracter(v1,i);
for(int j=0; j<CP.size(); j++){
for(int k=0; k<CP[j].size();k++){
for(int l=0; l<aux.size(); l++){
if(CP[j][k]==aux[l])break;
else if(l==aux.size()-1){
eliminar(CP,j);
}
}
}
}
}
return CP;
}
int main (int argc, char* argv[ ]){
ifstream f1 (argv[1]);
ofstream f2 (argv[2]);
int n;
f1 >> n;
vector<int>CD(n);
for (int i=0; i<n; i++){
f1 >> CD[i];
}
string palabra;
vector<string>diccionario;
f1 >> palabra;
while (!f1.eof()){
diccionario.push_back(palabra);
f1 >> palabra;
}
for(int i=0; i<funcion_iterativa(diccionario, CD).size(); i++){
f2 << funcion_iterativa(diccionario, CD)[i] << endl;
}
f1.close();
f2.close();
return 0;
}
llevo toda la tarde con el programa y no consigo que funcione, se supone que al programa hace lo siguiente:
le paso un fichero con con unos numeros y unas palabras, el primer numero se corresponde a la cantidad de numeros que te dan, y los siguientes numeros es como si fuesen las teclas del telefono movil del 2 al 9, con el programa lo que debo hacer es que se copien en el segundo fichero aquellas palabras que se puedan formar con los digitos que te dan de inicio y en ese orden por ejemplo si te dan un fichero que contiene
4
4 6 5 2
manuel
inka
sistema
operativo
hola
nika
boligrafo
hotmail
pero
el fichero de salida deberia contener las palabras inka y hola.
GRACIAS