Programación General > C/C++
porque se cuelga?¿ se sale de algun vector?¿
(1/1)
meana:
--- Código: C++ ---#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
Navegación
Ir a la versión completa