[Tech] Stringhe in C

Daniele Masini d.masini@tiscali.it
Mer 28 Apr 2004 09:10:21 CEST


&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
> 



Maggiori informazioni sulla lista flug-tech