PDA

View Full Version : [C] Devo prendere il nome file da 1 URL: ho fatto questa function.


Matrixbob
22-12-2006, 17:58
Però mi sa che non è corretta perchè faccio tornare qualcosa che poi scompare vero?! :(

char* get_nomefile()
{
extern char enclosure_url[];
int i=0, j=0;
char enclosure_nomefile[SIZEBUF];
enclosure_nomefile[0]='\0';

while(enclosure_url[i]!='\0')
{
// getchar();
if (enclosure_url[i]!='/')
{
printf("stampo i=%d\n", i);
printf("stampo j=%d\n", j);
printf("enclosure_type: %s\n", enclosure_type);
printf("enclosure_url: %s\n", enclosure_url);
printf("enclosure_nomefile: %s\n\n", enclosure_nomefile);
enclosure_nomefile[j]=enclosure_url[i];
++i;
++j;
}
else{
j=0;
++i;
printf("A Z Z E R O\n\n");
}
}
return &enclosure_nomefile[0];
}

vizzz
22-12-2006, 18:50
esatto char enclosure_nomefile[SIZEBUF]; è uan così detta variabile "automatica" la cui visibilità è limitata alla funzione.
potresti passare un puntatore char *enclosure_nomefile alla funzione.

Matrixbob
22-12-2006, 22:00
esatto char enclosure_nomefile[SIZEBUF]; è uan così detta variabile "automatica" la cui visibilità è limitata alla funzione.
potresti passare un puntatore char *enclosure_nomefile alla funzione.
Affermativo!

... adesso mi viene 1 dubbio:
voi come la cancellate 1 stringa ovvero 1 array di caratteri?
Devo mettere tutti gli elementi a '\0' ?! :confused:

Io così sto facendo con 1 for,
altrimenti quando sovrascrivo quella stringa ho parti delle stringhe + lunghe precedenti. :stordita:

vizzz
22-12-2006, 23:36
un for va benissimo altrimenti se proprio vuoi fare una cosa di classe memset :)

Matrixbob
22-12-2006, 23:40
un for va benissimo altrimenti se proprio vuoi fare una cosa di classe memset :)
Mah direi il + portabile e quello che ci mette meno in complessità allora. :)