elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [aporte][c]encontrar subcadenas y su posicion
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [aporte][c]encontrar subcadenas y su posicion  (Leído 3,381 veces)
daryo


Desconectado Desconectado

Mensajes: 1.070



Ver Perfil WWW
[aporte][c]encontrar subcadenas y su posicion
« en: 16 Junio 2013, 01:54 am »

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main()
  5. {
  6. char cadena[]="a p**a";
  7. char groseria[]="p**a";
  8. int value;
  9. int val;
  10. int x=0;
  11. for(value=0;cadena[value]!='\0';value++)
  12. {
  13.    if(cadena[value]==groseria[0])
  14.    {
  15.       for(val=0;cadena[value+val]!='\0';val++)
  16.       {
  17.        if(cadena[value+val]==groseria[val])
  18.        {
  19.                x++;
  20.  
  21.        }
  22.        else
  23.        {
  24.            x=0;
  25.        }
  26.            if(x==strlen(groseria))
  27.        {
  28.            printf(" el detector de groserias a encontrado una coincidencia en la posicion %i \n",value);
  29.        }
  30.       }
  31.    }
  32.  
  33. }
  34. return 0;
  35. }
  36.  


En línea

buenas
amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: [aporte][c]encontrar subcadenas y su posicion
« Respuesta #1 en: 16 Junio 2013, 10:52 am »

;-) ;-)

Deberías ampliar el programa para una lisa de palabras ^^

Por cierto una implementación en C++:

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. const char Palabras_Malsonantes = 4;
  6.  
  7. int main()
  8. {
  9.    string Nombre = "Casa de p***a";
  10.    int indice;
  11.  
  12.    const char Palabras[30][20] = {
  13.                                {"p***a"},
  14.                                {"cab**n"},
  15.                                {"idiota"},
  16.                                {"lameculos"}
  17.                              };
  18.  
  19.    for (int i = 0; i < Palabras_Malsonantes;i++)
  20.    {
  21.        if ((indice = Nombre.find(Palabras[i])) != -1)
  22.            cout<<"Se encontro una palabra malsonante en la posicion "<<indice<<endl;
  23.    }
  24.  
  25.    return 0;
  26. }
  27.  


En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
aguml


Desconectado Desconectado

Mensajes: 378



Ver Perfil
Re: [aporte][c]encontrar subcadenas y su posicion
« Respuesta #2 en: 16 Junio 2013, 11:43 am »

¿Y por que no usar lo que ya existe como es strstr de string.h? Le indicas la cadena y la subcadena a buscar y te devuelve la posicion de esta si la encuentra, y si la encuentra pues vuelves a usarla pero esta vez empiezas a buscar desde el resultado obtenido mas 1 y asi hasta llegar al final de la cadena.
En línea

daryo


Desconectado Desconectado

Mensajes: 1.070



Ver Perfil WWW
Re: [aporte][c]encontrar subcadenas y su posicion
« Respuesta #3 en: 16 Junio 2013, 15:13 pm »

¿Y por que no usar lo que ya existe como es strstr de string.h? Le indicas la cadena y la subcadena a buscar y te devuelve la posicion de esta si la encuentra, y si la encuentra pues vuelves a usarla pero esta vez empiezas a buscar desde el resultado obtenido mas 1 y asi hasta llegar al final de la cadena.
pues la verdad no me gusta como c maneja las cadenas a diferencia de c++ asi que me parece mejor codearmelas.Ademas algo aprendere  :P


;-) ;-)

Deberías ampliar el programa para una lisa de palabras ^^

Por cierto una implementación en C++:

me gusta tu version en  c++ ;D
En línea

buenas
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: [aporte][c]encontrar subcadenas y su posicion
« Respuesta #4 en: 16 Junio 2013, 16:39 pm »

Ya que no usamos strstr, ¿para qué hacer uso de la librería string?. Ya puestos lo hacemos todo "a pelo":

Código
  1. #include <stdio.h>
  2. int main(void)
  3. {
  4.    char cadena[60]="hola no es ni aholal hola sino hola ni halo y si holahola",
  5.    cadena1[]="hola";
  6.    int i,j,cont=0,num2=0;
  7.    for (i=0;cadena1[i];i++)
  8.        num2++;
  9.    for (i=0 ; cadena[i];i++)
  10.        if (cadena[i]==cadena1[0] &&  cadena[i-1]==' ' || i==0 )
  11.            {
  12.                for (j=1;j<=num2-1 ;j++)
  13.                    {
  14.                        if (cadena[i+j]!=cadena1[j]) break;
  15.                        if (j == num2-1 && cadena[i+num2]==' ')
  16.                        {
  17.                            cont++;
  18.                            printf ("\nEncontrada la palabra \"%s\" en la posicion %d",cadena1,i+1);
  19.                        }
  20.                    }
  21.            }
  22.    printf ("\nEncontradas %d coincidencias.",cont);
  23.    return 0;
  24. }
  25.  

     Saluditos!
    

« Última modificación: 16 Junio 2013, 17:11 pm por leosansan » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
pequeño aporte(proxy),pero aporte al fin.:D
Programación Visual Basic
Tengu 0 2,424 Último mensaje 22 Julio 2007, 17:33 pm
por Tengu
encontrar posicion de valor en una cadena en batch
Scripting
dj kuzmar 1 3,178 Último mensaje 3 Febrero 2010, 01:49 am
por leogtz
[Subcadenas] con Python
Scripting
Meta 2 3,456 Último mensaje 9 Noviembre 2010, 16:18 pm
por Meta
[DUDA C] Dividir cadena en subcadenas (similar argv)
Programación C/C++
setwarn 2 7,511 Último mensaje 6 Diciembre 2010, 18:01 pm
por setwarn
Encontrar el mayor elemento de una matriz y su posicion
Programación C/C++
estudiante_1 0 1,470 Último mensaje 2 Enero 2016, 19:37 pm
por estudiante_1
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines