char array o String ?

ho provato il tutto e sembra funzionare. la divisione l'ho fatta direttamente sulla riga nella quale chiamo la funzione:

pressioneRicevuta = assegnoValore(8, 5) / 10; //dal carattere 8 per 5 caratteri

Non ci avevo fatto caso... se funziona bene, sulla lunghezza dell'array di destinazione nutro i miei dubbi. Non è che non ti funziona è che avendo un solo decimale l'ultimo carattere è inunfluente ai fini del calcolo ma tu lo stai sovrascrivendo con il terminatore, se non hai mai più di un decimale allora va bene anche così.

penso di aver capito cosa intendi ma io volutamente quando leggo il valore float lo moltiplicato per 10 e non per 100 cosi elimino il secondo decimale.
char valore[4]; non ha 4 caratteri piu il terminatore? ho capito male?

baadaa:
char valore[4]; non ha 4 caratteri piu il terminatore? ho capito male?

Stai definendo un array di 4 elementi, in C l'indice parte da zero quindi elementi da 0 a tre.
Il terminatore è un carattere a tutti gli effetti, è obbligatoria averlo se usi le funzioni standard per manipolare le stringhe, ma se tu vuoi memorizzare 4 caratteri a casaccio SENZA usare funzioni ma accedendo ai vari elementi con valore[0], valore[1], ecc. il terminatore non ti serve.
Quindi se tu hai 4 caratteri e ti serve il terminatore devi definirlo di 5.
Il consiglio comunque resta quello di prevedere SEMPRE il terminatore perché non è detto che in futuro tu non decida di usare una funzione standard e senza di esso cadi in un caso di undefined behaviour con tutto ciò che può accadare (da nulla al disastro ambientale), quindi a meno che non si stia giocando con risorse limitatissime dove anche un carattere fa la differenza è sempre bene prevedere il terminatore

ok. scusa ma non riesco a capire, voglio mettere questo terminatore anche se per il momento forse non mi serve.
pensavo che andava bene cosi: valore[lunghezzaArray] = '\0'
non è questa la procedura?

se creo un array di[4] e poi faccio array[4] = '\0'

va bene? avrò:
'1','2','3','4','\0' ?
o
'1','2','3','\0' ?

o devo fare array[3]='\0'?
ho un po di confusione... scusatemi.

grazie

Se istanzi:

char array[4];

Puoi fare solo:

array[0] = 'P';
array[1] = 'I';
array[2] = 'P';
array[3] = '\0';

quindi quattro caratteri totali, tre utili e un terminatore
se fai

array[4] = 'A';
array[4] = '\0';

sei fuori dalla lughezza massima dell’array quindi in pieno undefined behaviour.
Questo perché stai andando a scrivere in un’area di memoria potenzialmente usata per altre variabili quindi scrivendo qualsiasi cosa potresti causare un malfunzionamento oppure no non è possibile determinarlo (ecco perché si chiama undefined behaviour).
Riassumento hai una stringa lunga al massimo quattro caratteri (Es. Ciao)? devi definire l’array lungo 5 per ospitare anche il terminatore

char array[5];
array[0] = 'C';
array[1] = 'i';
array[2] = 'a';
array[3] = 'o';
array[4] = '\0';

ok perfetto ora ho capito!! ...sbagliavo tutte le dichiarazioni degli array!! grazie tante