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
Imagen
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
Skype:crack8111
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
Abolición para el torneo del toro de la vega. Death to the murderers of bulls.
crack81 lo hice en codeblocks.

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

saludos strup :*
Imagen
Responder

Volver a “Fuentes”