saludos a todos, andaba aburrido y me puse a codear esta funcion que copia una porcion de string o toda la string lo que nosotros queramos xDD, conocida en ruby como slice y en autoit como midstr y en perl substr, espero les guste y si hay alguna sugerencia pueden darla, aqui va el code.
/*
  Name: Funcion slice tambien llamada midstr
  Author: strup
  Date: 02/11/13 21:45
  Description: Extrae la cantidad de caracteres que indiquemos a partir de una posicion dada en la cadena.
*/

#include <stdio.h>
#include <stdlib.h>

char *slice(char *string,char var,char var2)
{
     char i=0,x,*ptr;
     if(var2==0)
     {
     ptr=malloc((strlen(string)-var)*sizeof(char));
     for(i=var,x=0;i != strlen(string);i++,x++)
     ptr[x]=string[i];
     }
     else
     {
     ptr=malloc(var2*sizeof(char));
     while(i != var2)
     {
     ptr[i]=string[var];
     var++;
     i++;
     }
     }
     return(ptr);
}
Forma de uso:
puts(slice("putawarra",4,5));
nos retorna:
warra

xDDD
Saludos a todos
Abolición para el torneo del toro de la vega. Death to the murderers of bulls.
crack81 escribió:esta genial lastima que yo uso c++
Gracias crack81, de c a c++ no hay mucha diferencia la manera de asignar memoria dinamicamente es con malloc tambien, igual la diferencia que puede aver entre esta funcion y otra igual en c++ puede ser la manera de imprimir la cadena en pantalla, con c es printf o puts()(puts solo con cadenas) y con c++ es cout y nose si tambien puts, saludos
Abolición para el torneo del toro de la vega. Death to the murderers of bulls.
Muy buena Funcion bro sigue así. :)

@crack81 desde C++ es mucho mas fácil, algo(cutre) seria masomenos así:
int desde=5;
    int hasta=7;
    string cadena="";
    string cadenanueva="";
    cadena="hola crack81 Como estas";

   for(int i=desde;i<=desde+hasta;i++){
    cout << cadena[i] << endl;
    cadenanueva+=cadena[i];
   }
     cout << cadenanueva << endl;
    return 0;
saludos
Imagen
Pink escribió:Muy buena Funcion bro sigue así. :)

@crack81 desde C++ es mucho mas fácil, algo(cutre) seria masomenos así:
int desde=5;
    int hasta=7;
    string cadena="";
    string cadenanueva="";
    cadena="hola crack81 Como estas";

   for(int i=desde;i<=desde+hasta;i++){
    cout << cadena[i] << endl;
    cadenanueva+=cadena[i];
   }
     cout << cadenanueva << endl;
    return 0;
saludos
Gracias pink, a ti te quedo sutil y muy buena,de hecho aunque no codeo en C++ no me resulto complicado leerla, muy comprensible un saludo maquina
Abolición para el torneo del toro de la vega. Death to the murderers of bulls.
Responder

Volver a “Fuentes”