[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