elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
12 Octubre 2008, 18:43  



+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++
| | |-+  Funcion char left(char,int);
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Funcion char left(char,int);  (Leído 465 veces)
WHK

Desconectado Desconectado

Mensajes: 835


+-=[Yan]=-+


Ver Perfil WWW
Funcion char left(char,int);
« en: 26 Mayo 2008, 01:26 »

Hola, creo que con el titulo se nota lo que necesito, algo similar al left de vb6 donde debuelve los primeros x caracteres del buffer, lo necesito para filtrar argumentos ya que con strcmp confunde el argumento -v con -ver, se que se puede de otra forma pero no les voy a explicar porque ya que escribo desde el celular y me duele el dedo (del medio xd)
En línea

-The Hacktivism is not a crimen.
- Dios nos hace libres en el mundo real y el Hacking nos hace libres en el mundo de la informática.
- Richard Stallman: "GNU (GNU No es Unix)".
- Mi web: https://sourceforge.net/projects/whkfilemanager/ - http://www.jccharry.com/ (Actualizando)
- Cracking al 100% http://solid.jccharry.com/
Ferсhu

Desconectado Desconectado

Mensajes: 1.221

Menos palabras y Mas codigos.


Ver Perfil WWW
Re: Funcion char left(char,int);
« Respuesta #1 en: 26 Mayo 2008, 01:35 »

Código:
void left(char **cadena,int n){

*cadena[n]=0; // indica q ahi termino la cadena

}

void rigth(char **cadena,int n){

tam=strlen(*cadena);
*cadena=(char *)(*cadena+tam-n);

}

Tenes q pasar la direccion del puntero de la cadena original ej leftf(&cadena,10);

Lo hace sobre la misma cadena, si keres usar otra vas a tener q usar una cadena auxiliar.


No lo probe :p
« Última modificación: 26 Mayo 2008, 01:40 por Ferсhu » En línea

®®
Colaborador

Conectado Conectado

Mensajes: 5.268


Ver Perfil
Re: Funcion char left(char,int);
« Respuesta #2 en: 26 Mayo 2008, 02:27 »

Citar
ya que con strcmp confunde el argumento -v con -ver

pon el codigo.
En línea
WHK

Desconectado Desconectado

Mensajes: 835


+-=[Yan]=-+


Ver Perfil WWW
Re: Funcion char left(char,int);
« Respuesta #3 en: 26 Mayo 2008, 03:06 »

ya, me conseguí el pc de mi tio unos segundos para colgar mi código todo mal hecho mientras trato de aprender mas XD... ahi va, después por el fon veo las sugerencias :p

http://512.iespana.es/mt.html

la idea es que quiero evitar problemas al ejecutar mt.exe -v y mt.exe -ver entre otros ya que quiero primero separar argumentos cada uno de los que comienzen con el caracter "-" y buscar valor con una función que hice llamada eregi al igual que en php y ahorrar código buscando desde los argumentos mas largos hasta los de un caracter pero para eso necesito diferenciar cual es el primer caracter de cada argumento y para eso necesito el left. vi como estaba diseñado el netcat pero no me gustó que utilizara cientos de lineas para hacer algo tan simple. gracias de antemano por la ayuda ;)

pd: cuidado con el plagio :P

Adew y grax...
En línea

-The Hacktivism is not a crimen.
- Dios nos hace libres en el mundo real y el Hacking nos hace libres en el mundo de la informática.
- Richard Stallman: "GNU (GNU No es Unix)".
- Mi web: https://sourceforge.net/projects/whkfilemanager/ - http://www.jccharry.com/ (Actualizando)
- Cracking al 100% http://solid.jccharry.com/
WHK

Desconectado Desconectado

Mensajes: 835


+-=[Yan]=-+


Ver Perfil WWW
Funcion char left(char,int);
« Respuesta #4 en: 26 Mayo 2008, 05:23 »

Juaz, pensaba que me iban a dar una mano, se que no es algo bien hecho pero necesitaba una orientación.
En línea

-The Hacktivism is not a crimen.
- Dios nos hace libres en el mundo real y el Hacking nos hace libres en el mundo de la informática.
- Richard Stallman: "GNU (GNU No es Unix)".
- Mi web: https://sourceforge.net/projects/whkfilemanager/ - http://www.jccharry.com/ (Actualizando)
- Cracking al 100% http://solid.jccharry.com/
E0N
Lab &
Colaborador

Desconectado Desconectado

Mensajes: 2.686


http://e0n-productions.blogspot.com/


Ver Perfil WWW
Re: Funcion char left(char,int);
« Respuesta #5 en: 26 Mayo 2008, 13:12 »

Left:
Código:
std::string s1("Hola");
std::string s2(s1.substr(0,2); // s2 = "Ho"

Supongo q eso te servirá
Salu2 ;)
En línea

Inaugurado y en construcción:
http://e0n-productions.blogspot.com/
Leber

Desconectado Desconectado

Mensajes: 261

"Las estrellas se apagan..."


Ver Perfil
Re: Funcion char left(char,int);
« Respuesta #6 en: 27 Mayo 2008, 00:40 »

Quiza esto te sirva, no es una joya, pero creo que cumple con su funcion. Lo hice en un ratito que me aburri y vi tu post, toma, ya me diras:

Código:
char *return_char(char *cadena, int num_char)
{

char *aux;
int i=0;

       while(i++ < num_char)
         *aux++=*cadena++;     //Copiamos los ncaracteres que queramos

    *aux='\0';

       while(num_char-- > 0)
         *--aux;                         //decrementamos el puntero al principio de la cadena

  return aux;                         //devolvemos los caracteres

}
En línea

"Solo los tontos carecen de preucupaciones." Johann Wolfgang Goethe
WHK

Desconectado Desconectado

Mensajes: 835


+-=[Yan]=-+


Ver Perfil WWW
Re: Funcion char left(char,int);
« Respuesta #7 en: 01 Junio 2008, 03:23 »

Gracias, ya me orienté mejor y terminé creando otra función:

Código
int eregi_argum(char *Argumento_Necesitado, char *Argumentos[]){
if(Argumento_Necesitado and Argumentos){
 for(int Cuenta = 1;true; Cuenta++){ /* Inicia desde el 1 para no procesar el argv[0] */
  if(!Argumentos[Cuenta]){
   break; /* Si no hay mas argumentos se detiene para arrojar el resultado */
  }else if(!strncmp(Argumentos[Cuenta],Argumento_Necesitado,strlen(Argumento_Necesitado))){
   return 1; // El argumento existe.
  }
 }
 return 0; // No hay argumentos válidos.
}else{
 return 0; // No se acerptan argumentos nulos / vacios.
}
}
 
char *valor_argum(char *Argumento_Necesitado, char *Argumentos[], int N_Valor){
if(Argumento_Necesitado and Argumentos){
 for(int Cuenta = 1;true; Cuenta++){ /* Inicia desde el 1 para no procesar el argv[0] */
  if(!Argumentos[Cuenta]){
   break; /* Si no hay mas argumentos se detiene para arrojar el resultado */
  }else if(
           !strncmp(Argumentos[Cuenta],Argumento_Necesitado,strlen(Argumento_Necesitado))
          and
           Argumentos[Cuenta + N_Valor]
          and
           strncmp(Argumentos[Cuenta + N_Valor],"-",1)
          ){
   return Argumentos[Cuenta + N_Valor]; // Debuelve el argumento.
  }
 }
 return 0; // No hay argumentos válidos.
}else{
 return 0; // No se acerptan argumentos nulos / vacios.
}
}

y en main:

Código
int main(int argc, char *argv[]){
int Retorno;
int Cuenta;
/* -p [Segundos] ------------------------------------------------------------ */
sleep(atoi(valor_argum("-p",argv,1)) * 1000); /* Crea una pausa de N segundos */
/* -n [N veces] ------------------------------------------------------------- */
Cuenta = (atoi(valor_argum("-n",argv,1)) - 1); /* Cuenta N loops */
if(Cuenta <= 0){Cuenta = 0;} /* Evita negativos */
/* -------------------------------------------------------------------------- */
Inicio: /* Loop para el argumento -n */
/* -e [Comando] ------------------------------------------------------------- */
if(valor_argum("-e",argv,1)){
 Retorno = system(valor_argum("-e",argv,1));
 if(eregi_argum("-per",argv)){goto Inicio;}if(Cuenta){Cuenta--;goto Inicio;}
 return Retorno;
/* -d [URL] [-s Salida]  [-a Agente] ---------------------------------------- */
}else if(valor_argum("-d",argv,1)){
 Retorno = descargar_url(valor_argum("-d",argv,1),valor_argum("-s",argv,1),valor_argum("-a",argv,1),eregi_argum("-v",argv));
 if(eregi_argum("-per",argv)){goto Inicio;}if(Cuenta){Cuenta--;goto Inicio;}
 return Retorno;
/* -l [Puerto] [Ejecutable] ------------------------------------------------- */
}else if(valor_argum("-l",argv,1)){
 Retorno = winsock_escucha(atoi(valor_argum("-l",argv,1)),valor_argum("-l",argv,2),eregi_argum("-v",argv));
 if(eregi_argum("-per",argv)){goto Inicio;}if(Cuenta){Cuenta--;goto Inicio;}
 return Retorno;
/* -i [Dirección IP] [puerto] [Ejecutable] ---------------------------------- */
}else if(valor_argum("-i",argv,1) and valor_argum("-i",argv,2)){
 Retorno =  winsock_inversa(valor_argum("-i",argv,1), atoi(valor_argum("-i",argv,2)), valor_argum("-i",argv,3),eregi_argum("-v",argv));
 if(eregi_argum("-per",argv)){goto Inicio;}if(Cuenta){Cuenta--;goto Inicio;}
 return Retorno;
/* -h [-v] ------------------------------------------------------------------ */
}else if(eregi_argum("-h",argv)){
 int Modo;
 if(eregi_argum("-v",argv)){Modo=1;}else{Modo=2;}
 Retorno = ayuda(Modo);
 if(eregi_argum("-per",argv)){goto Inicio;}if(Cuenta){Cuenta--;goto Inicio;}
 return Retorno;
/* Finalizar proceso -------------------------------------------------------- */
}else{
 return ayuda(0); /* No hay argumentos válidos, detiene persistencia */
}
}
 

claro que el goto lo debo reemplazar por un for, pero es provisorio para ver como quedaba.
pd: el de EON se veía buena idea pero me faltaba una librería a cargar que no sabía cual era porque el compilador solo me arrojaba que no estaban definidas las funciones.
« Última modificación: 01 Junio 2008, 03:31 por WHK » En línea

-The Hacktivism is not a crimen.
- Dios nos hace libres en el mundo real y el Hacking nos hace libres en el mundo de la informática.
- Richard Stallman: "GNU (GNU No es Unix)".
- Mi web: https://sourceforge.net/projects/whkfilemanager/ - http://www.jccharry.com/ (Actualizando)
- Cracking al 100% http://solid.jccharry.com/
E0N
Lab &
Colaborador

Desconectado Desconectado

Mensajes: 2.686


http://e0n-productions.blogspot.com/


Ver Perfil WWW
Re: Funcion char left(char,int);
« Respuesta #8 en: 01 Junio 2008, 17:24 »

Citar
pd: el de E0N se veía buena idea pero me faltaba una librería a cargar que no sabía cual era porque el compilador solo me arrojaba que no estaban definidas las funciones.

string.h ;)
En línea

Inaugurado y en construcción:
http://e0n-productions.blogspot.com/
Páginas: [1] Ir Arriba Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC
Free counter and web stats