PDA

View Full Version : [c] domande da nubbio su stringhe.


noodles83
06-04-2007, 17:02
Vorrei avere un po di chiarezza su alcune cose rigurdanti le stringhe.

1)quando alloco spazion con una malloc, devo anche contare il terminatore di stringa?

2) in una situazione tipo questa...

sprintf(p, "[%s] %s", stringa1, stringa2);

a) sapendo la lunghezza di stringa1 e stringa2 con strlen() di quanto va allocata p?

b)la sprintf aggiunge automaticamente il terminatore di stringa?


scusate le domande niubbe, ma sto imparando ora...

andbin
06-04-2007, 17:21
1)quando alloco spazion con una malloc, devo anche contare il terminatore di stringa?Sì, esempio:
void una_funzione (char *str)
{
char *str2;
str2 = (char*) malloc (sizeof(char) * (strlen(str)+1));
strcpy (str2, str);
....
}


2) in una situazione tipo questa...

sprintf(p, "[%s] %s", stringa1, stringa2);

a) sapendo la lunghezza di stringa1 e stringa2 con strlen() di quanto va allocata p?Beh, il calcolo devi farlo tu: strlen(stringa1) + strlen(stringa2) + 4. Il '4' è perché ci sono [, ], uno spazio e il nullo finale.

b)la sprintf aggiunge automaticamente il terminatore di stringa?Sì.

noodles83
06-04-2007, 17:29
ok! grazie mille!

era piu o meno come pensavo... ma volevo esserne sicuro! :D

maulattu
06-04-2007, 19:34
per andare sul sicuro usa la snprintf