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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Re: Ayuda con segmentation fault en: 26 Junio 2014, 23:44 pm
El programa funciona a la perfeccion! Gracias a Eternal y a Engel por su ayuda.
Al final el problema estaba en my_strequ.

Saludos a todos
2  Programación / Programación C/C++ / Re: Ayuda con segmentation fault en: 25 Junio 2014, 02:24 am
Bueno gente, la clave era como dijo idol, los dobles punteros a char y lo del = y el == me lo comi por distraido  :P

Hasta ahora tengo esto de codigo, pero no logra cumplir el objetivo la funcion moderar ya que no logro hacer que las cadenas sean identicas.
Mi funcion de my_strequ funciona en otros programas pero no en este  :(

Código:
#include "my_string.h"

int moderar(char** a, int j, char** b, int c)
{
  int i,k,l,m,w=0,cant=0;
  
  for(k=1; k<j; k++)
  {
for(l=0;l<c;l++)
{
 m=my_strequ(a[k],b[l]);
 
 if (m==1)
 {
w=my_strlen((a[k]));
int t=0;

for(t=0; t<w; t++)
{
 a[k][t]='x';
}
 }
}
cant+=w;
  }

  return cant;
}

int main (int argc, char* argv[])
{
  char* palprob[TAM]; char auxi[30];
  int i=0, nuevasx=0;
  int tama, cantpalprob=0;
  
  
  printf("\nIngresar hasta 10 palabras prohibidas a moderar (pulse ENTER si desea finalizar antes de llegar a 10 palabras):\n");
  
 for (i=0;i<10 && *auxi!='\0';i++)
  {
    gets(auxi);
    cantpalprob=i;
    if (*auxi!='\0')
    {
      tama=my_strlen(auxi);
      palprob[i] = (char*) calloc (tama+1,sizeof(char));
      my_strcpy(palprob[i],auxi);
    }
  }
  
  printf("Palabras prohibidas: ");

  for(i=0; i<cantpalprob; i++)
   printf("\n\t\t\t%s ", palprob[i]);

  nuevasx+= moderar(argv, argc, palprob, cantpalprob);
 
 printf("\nMensaje moderado: \n\t\t\t");
 
 for(i=0; i<argc-1; i++)
   printf("%s ", argv[i+1]);
 
printf("\n\nCantidad de caracteres modificados: %d \n\n",nuevasx);
  
  return 0;
}
3  Programación / Programación C/C++ / Re: Ayuda con segmentation fault en: 23 Junio 2014, 19:34 pm
Se que es mi codigo, y uso el kdbg para depurarlo pero no se como corregirlo, ese es el problema.

Entonces tengo que completar toda la cadena de 10 elementos con ='NULL' ?
Voy a probar las correciones y les digo como me fue
4  Programación / Programación C/C++ / Ayuda con segmentation fault en: 23 Junio 2014, 17:55 pm
Buenas, soy nuevo por aca y ando necesitando ayuda para un programa.
La idea del programa es que remplace palabras "prohibidas" ingresadas por usuario en texto que se ingresa como argumento de la funcion. El codigo va algo asi:

Código
  1. #include "my_string.h"
  2.  
  3. int moderar(char a[], int j, char b[])
  4. {
  5.  int k=0,l=0,m=0,w=0,cant=0;
  6.  
  7.  for(k=1; k<j; k++)
  8.  {
  9. for(l=0;l<TAM;l++)
  10. {
  11.  m=my_strequ( &a[k], &b[l]);
  12.  
  13.  if (m=1)
  14.  {
  15. w=my_strlen((&a[l]));
  16. int t=0;
  17.  
  18. for(t=0; t<w; t++)
  19. {
  20.  ((a[l+t]))='x';
  21. }
  22.  }
  23. }
  24. printf("que ***** cuenta: %d",w);
  25. cant=w;
  26.  }
  27.  
  28.  return cant;
  29. }
  30.  
  31. int main (int argc, char* argv[])
  32. {
  33.  char* palprob[TAM];
  34.  int i=0, nuevasx, q=argc;
  35.  
  36.  printf("\nIngresar hasta 10 palabras prohibidas a moderar (pulse ENTER si desea finalizar antes de llegar a 10 palabras)\n");
  37.  
  38.  do
  39.  {
  40. palprob[i]= (char*)calloc(1, sizeof(char*));
  41. gets(palprob[i]);
  42. i++;
  43.  } while((i<10)&&(*(palprob[i-1])!='\0'));
  44.  
  45. nuevasx= moderar(argv, argc, palprob);
  46.  
  47. printf("\nMensaje moderado: \n");
  48.  
  49. for(i=0; i<argc-1; i++)
  50.   printf("%s ", argv[i+1]);
  51.  
  52. printf("\n\nCantidad de caracteres modificados: %d \n",nuevasx);
  53.  
  54.  return 0;
  55. }

Aclaro, en my_string.h se encuentran funciones propias de strequ y strlen y estan funcionando correctamente (ya las probe con otro programa).
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines