Ver Mensaje Individual
  #4 (permalink)  
Antiguo 13/03/2011, 10:03
Avatar de sephirot47
sephirot47
 
Fecha de Ingreso: marzo-2011
Ubicación: BCN
Mensajes: 54
Antigüedad: 13 años, 1 mes
Puntos: 9
Respuesta: Tengo un problema, y bastante gordo!

Aqui tienes una funcion que te he hecho. Suerte !

Código C++:
Ver original
  1. bool det(char* str){
  2.      
  3.      bool LSI = false;
  4.      int veces = 0;
  5.      
  6.      for( int i = 0; str[i] != '.'; i++){
  7.          
  8.           if(str[i] == ' ' ) {
  9.              
  10.              veces = 0;
  11.              LSI = false;
  12.              continue;
  13.           }
  14.           if( (str[i] == 'l' || str[i] == 'L') ){
  15.              
  16.               LSI = true;
  17.               if( (str[i+1] == 'a' || str[i+1] == 'A') && ((veces == 0 && (str[i-1] == ' ' || i == 0)) ||
  18.                   (veces == 1 && (str[i+2] == ' ' || str[i+2] == '.')) ) ){
  19.                  
  20.                   veces++;    
  21.               }  
  22.              
  23.           }else LSI = false;
  24.          
  25.           if(veces == 2) return true;
  26.          
  27.      }  
  28.      
  29.      return false;
  30. }

Y aquí está el main():

Código C++:
Ver original
  1. int main(int argc, char *argv[]){
  2.    
  3.     char str[100];
  4.     cout << "Introduzca su frase:  ";
  5.     cin.getline(str, 100);
  6.    
  7.     if(det(str) == 1){
  8.        
  9.         cout << "SI tiene una palabra que empieza por 'la' y acaba por 'la'"<<endl;        
  10.     }else{
  11.        cout << "NO tiene una palabra que empieza por 'la' y acaba por 'la'"<<endl;
  12.     }
  13.    
  14.     cin.get();
  15.    
  16.     return EXIT_SUCCESS;
  17. }

Última edición por sephirot47; 13/03/2011 a las 10:51