• Domingo 15 de Diciembre de 2024, 08:39

Autor Tema:  Buscar en cadena de caracteres  (Leído 1188 veces)

laux

  • Miembro activo
  • **
  • Mensajes: 29
    • Ver Perfil
Buscar en cadena de caracteres
« en: Miércoles 6 de Abril de 2011, 22:21 »
0
Hola, estoy resolviendo un problema y como mis conocimientos de C aún no son buenos no logro darme cuenta como hacerlo..

Necesito realizar un método algo así como BuscarOcurrencias, que recibiendo como parametro (char** palabras, int desde y int hasta, char *caracteres) me devuelva las palabras que contengan todos los caracteres en el orden en el que se encuentran en el string caracteres tomando en cuenta mayúscula y minúscula (CASE-SENSITIVE).

En realidad sólo se tomarán en cuenta las palabras entre las posiciones desde y hasta inclusive del
vector palabras (el vector comienza en 0). Un ejemplo sería si desde==1 y hasta==2 se deben leer 2
palabras y buscar si los caracteres están en orden allí.

Alguien me tira una idea de cómo comenzarían a hacerlo?

Espero su respuesta,
Desde ya muchas gracias.

rfog

  • Miembro MUY activo
  • ***
  • Mensajes: 166
    • Ver Perfil
Re: Buscar en cadena de caracteres
« Respuesta #1 en: Jueves 7 de Abril de 2011, 13:16 »
0
Para cada palabra, usa strstr() para encontrarla en caracteres, y si es así, añades la ocurrencia a un nuevo vector con las posiciones...
Microsoft Visual C++ MVP - Mi blog sobre programación: http://geeks.ms/blogs/rfog

laux

  • Miembro activo
  • **
  • Mensajes: 29
    • Ver Perfil
Re: Buscar en cadena de caracteres
« Respuesta #2 en: Viernes 8 de Abril de 2011, 16:52 »
0
Si, pero es un ejercicio para entregar y no me permiten trabajar con la libreria str..
Lo que he hecho es lo siguiente, ahora deberia controlar que en orden para cada palabra se encuentres los caracteres?

Código: C++
  1. void buscarOcurrencias(char** palabras, int desde, int hasta, char* caracteres)
  2. {
  3.     int i;
  4.     int j;
  5.     int largoCad;
  6.     for ( i = desde; i < hasta; i++ )
  7.     {
  8.         largoCad = strlen(palabras[ i ])+1;
  9.                    
  10.                     char *pal = palabras[ i ] ;
  11.                     char *nueva = new char [largoCad];
  12.                     for ( j = 0; j < largoCad ; j++ )
  13.                         {
  14.                         nueva[j]=pal[j];
  15.                             cout<<  "PRUEBA DE IMPRESION DE LAS LETRAS DE: " << palabras [i] << " es: " << nueva[j];
  16.                     }
  17.  
  18.     }
  19.  
  20.  

Gracias :rolleyes: