Bueno se perdió el post anterior, pero hice esta función que corta una cadena como mid o substr de php
#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.
#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