Mid o substr en C

Iniciado por linkgl, Septiembre 06, 2011, 12:07:50 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Septiembre 06, 2011, 12:07:50 AM Ultima modificación: Febrero 08, 2014, 05:44:59 PM por Expermicid
Bueno se perdió el post anterior, pero hice esta función que corta una cadena como mid o substr de php
Código: c

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/***********************************
* Coder: Linkgl                    *
* Fecha:17/12/10                   *
***********************************/
char *substr(char * szCadena,int dwInicio,int dwLongitud)
{
  int i;
  char *szNueva=(char *)malloc(strlen(szCadena));
  memset(szNueva,0,strlen(szCadena));
  for(i=dwInicio;i<dwInicio+dwLongitud;i++)
    szNueva[strlen(szNueva)]=szCadena[i];
  return szNueva;
}
//->implementacion
int main ()
{
  printf("La cadena es : %s",substr("funciona con underc0de",13,9));
  getchar();
  return 0;
}

Esta bueno, aqui envío una sin bucle for y aumentando la direccion del puntero de la cadena, aunque no esta validando la entrada.

Código: cpp

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/***********************************
* * Coder: Linkgl                    *
* * Fecha:17/12/10                   *
* ***********************************/
char *substr(const char * szCadena,int dwInicio,int dwLongitud)
{
  int i;
  char *szNueva=(char *)malloc(strlen(szCadena));
  memset(szNueva,0,strlen(szCadena));
  for(i=dwInicio;i<dwInicio+dwLongitud;i++)
    szNueva[strlen(szNueva)]=szCadena[i];
  return szNueva;
}

char *substr2(const char *szCadena,int dwInicio, int dwLongitud)
{
    char *szNueva=(char *)malloc( dwLongitud+1);
    strncpy( szNueva, szCadena+dwInicio, dwLongitud);
    return szNueva;
}

//->implementacion
int main ()
{
    printf("La cadena es : %s",substr("funciona con underc0de, c/c++",13,9));
    printf("\nLa cadena 2es : %s",substr("funciona con underc0de, c/c++",13,9));
    getchar();
    return 0;
}


Saludos
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta