Discussion:
Capturar los últimos carácteres de una cadena.
(demasiado antiguo para responder)
AntyDesk
2004-01-23 16:18:45 UTC
Permalink
Estoy haciendo una función para "capturar" los últimos carácteres de una
cadena, Donde está el error ? ------>

PartCad y Cad son punteros de tipo char.




for(int tmp = 0; tmp < Num; tmp++)
{
PartCad[ FGLib_Len(Cad) - tmp ] = Cad[ Num - tmp ];
}
PartCad[Num] = '\000';


Gracias de antemano....
Mikel Irazabal
2004-01-26 10:09:53 UTC
Permalink
Post by AntyDesk
Estoy haciendo una función para "capturar" los últimos carácteres de una
cadena
Creo que debería ser:
(siendo Num cuantos caracteres quieres coger)

for(int tmp = 0; tmp < Num; tmp++)
{
PartCad[tmp] = Cad[strlen(Cad)-Num+tmp];
}
PartCad[Num] = '\000';


¿Por cierto que es FGLib_Len?
¿De que librería o que leches es eso?
AntyDesk
2004-01-26 19:45:38 UTC
Permalink
Post by Mikel Irazabal
¿De que librería o que leches es eso?
Es la funcion que te dice cuantos caracteres tiene una cadena de mi
libreria.

es igual que len();


gracias.
Mikel Irazabal
2004-01-27 07:53:29 UTC
Permalink
Post by AntyDesk
Post by Mikel Irazabal
¿De que librería o que leches es eso?
Es la funcion que te dice cuantos caracteres tiene una cadena de mi
libreria.
es igual que len();
No, si ya suponía que era igual que strlen(), pero es mejor decir esas
cosas para no llevar a la gente a equivocarse.

J.A. Gutierrez
2004-01-26 13:38:43 UTC
Permalink
AntyDesk <***@hotmail.com> wrote:
: Estoy haciendo una función para "capturar" los últimos carácteres de una
: cadena, Donde está el error ? ------>


: PartCad[ FGLib_Len(Cad) - tmp ] = Cad[ Num - tmp ];
: }

deduzco que no quieres usar funciones declaradas en string.h

En ese caso, podrias probar algo asi (a~nadiendo verificaciones
de datos, tratamiento de errores y demas):

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

main(int argc, char **argv)
{
char s[256], *is, *os;
int n,l;

n=atoi(argv[1]);
for ( is=argv[2], l=0; *is!=0x00; is++, l++)
;
l-=n;
os=s;
is=argv[2]+( l < 0 ? 0 : l);

do
{
*os=*is++;
}
while(*os++!=0x00);

puts(s);
}
---------------------------------------------------------------------------
--
finger ***@shiva.cps.unizar.es for PGP /
.mailcap tip of the day: / La vida es una carcel
application/ms-tnef; cat '%s' > /dev/null / con las puertas abiertas
text/x-vcard; cat '%s' > /dev/null / (A. Calamaro)
Loading...