Página 1 de 1

InsertStr Función

Publicado: 29 Jun 2014, 13:36
por Pink
Bueno vi un tema donde strup hablo sobre esa función y la hice


char * InsertStr(char * ptr, char * sinsert,unsigned int Post)
{
    int i=0;
    char * sptr=NULL;
    int sinlen=strlen(sinsert);
    int slen=strlen(ptr);

    if (Post<=slen)
    {
        sptr=calloc(slen+sinlen+1,sizeof(char));

        if (!sptr)
        {
            return sptr;
        }

        for (i=0; i<Post; i++)
        {
            sptr[i]=ptr[i];
        }

        for (i=Post; i<Post+sinlen; i++)
        {
            sptr[i]=sinsert[i-Post];
        }

        for(i=Post+sinlen; i<slen+sinlen; i++)
        {
            sptr[i]=ptr[i-sinlen];
        }
    }

    return sptr;

}
Uso:
#include <stdio.h>
#include <stdlib.h>

int main()
{

    char * ptr="Hola estas Pink?";
    char * sinsert="como ";
    char *sptr=NULL;

    sptr=InsertStr(ptr,sinsert,5);
    printf("Cadena: %s",sptr);

    return 0;
}

Salida:

Código: Seleccionar todo

Hola como estas Pink?
Saludos

Re: InsertStr Función

Publicado: 30 Jun 2014, 02:56
por crack81
pink en que editor hiciste el codigo?

edito: no me andaba hasta que vi que me daba un error de conversion por que faltaba (char*)
en esta linea sptr=(char*) calloc(slen+sinlen+1,sizeof(char));

saludos buen codigo

Re: InsertStr Función

Publicado: 30 Jun 2014, 15:20
por strup
Buenisima, te quedo de muerte nena , yo en haskell la hice que inserte entre dos delimitadores indicados en los parametros de la funcion en lugar de en la posicion dada, pero igual vale si sobre todo la combinas con el inStr que te curraste, sigue dandole duro al C, saludos

Re: InsertStr Función

Publicado: 30 Jun 2014, 16:45
por Pink
crack81 lo hice en codeblocks.

en c no es necesario hacer esa conversion(char*) como en c++.

saludos strup :*