[Tech] Stringhe in C

Daniele Masini d.masini@tiscali.it
Mer 28 Apr 2004 09:12:36 CEST


Scusa, mi correggo:

file_nome[0] = data[6];        /* anno */
file_nome[1] = data[7];
file_nome[2] = '_';
file_nome[3] = data[0];        /* mese */
file_nome[4] = data[1];
file_nome[5] = '_';
file_nome[6] = data[3];        /* giorno */
file_nome[7] = data[4];
file_nome[8] = '\0';        /* fine stringa */


Daniele Masini wrote:

> &data[3], che ti suggerisco di scrivere come &(data[3]), è la stringa 
> dal quarto (l'indice dei vettori inizia da 0) carattere fino al primo 
> carattere nullo (fine stringa). Ovvero, secondo l'esempio che hai 
> riportato è 27/04.
> Per fare quello che vuoi tu, visto che la stringa è piccola, puoi farlo 
> carattere per carattere: cioè
> 
> file_nome[0] = data[6];        /* anno */
> file_nome[1] = data[7];
> file_nome[2] = '_';
> file_nome[3] = data[3];        /* mese */
> file_nome[4] = data[4];
> file_nome[5] = '_';
> file_nome[6] = data[0];        /* giorno */
> file_nome[7] = data[1];
> file_nome[8] = '\0';        /* fine stringa */
> 
> Saluti,
> 
> Daniele
> 
> 
> Valerio Montagnani wrote:
> 
>> Ciao a tutti, ho di nuovo un problema di C.
>>
>> Devo scrivere il nome di un file di log, così composto:
>> Log-NOME_MACCHINA_DATA-ORA-NPROG.log
>> dove NOME_MACCHINA è la stazione di lavoro che esegue i conti, DATA è 
>> il giorno di elaborazione, ORA l'ora e NPROG è il numero progressivo 
>> dell'elaborazione.
>> L'unico campo che non riesco a formattare correttamente è quello DATA.
>> Ho estratto la data dal sistema e l'ho parcheggiata in un vettore 
>> (char data[9]).
>> La data estratta è del tipo: 04/27/04 (mm/gg/aa).
>> Vorrei fare in modo di scriverla nel seguente modo:
>> 04_04_27 (aa_mm_gg).
>> Pensavo fosse sufficiente scrivere:
>> strcat(file_nome,&data[3]); per concatenare il primo valore del giorno 
>> il 2 (di 27) al vettore nome_file, quindi ripetere l'operazione con il 
>> [4] e così via.
>> Invece l'operazione:
>> strcat(file_name,&data[3]), concatena il contenuto di data a partire 
>> dalla locazione 3 fino alla fine del vettore data.
>>
>> Come si fa, allora ad estrearre solo i valori che mi interessano dal 
>> vettore data, in modo da scrivere il log come vi ho spiegato prima?
>>
>> Grazie Vale
>>
> _______________________________________________
> FLUG - Discussioni tecniche - tech@firenze.linux.it
> URL: http://lists.firenze.linux.it/mailman/listinfo/tech
> Archivio: http://lists.firenze.linux.it/pipermail/tech
> Ricerca nell'archivio: http://www.firenze.linux.it/search
> 



Maggiori informazioni sulla lista flug-tech