Oppure

Loading
05/01/10 17:10
edo42
Ho un problema:
ho una funzione scritta da me che riceve come input un char che contiene numeri e lettere;
capita che questa char contenga il "00" e se va avanti nel metodo alla fine mi ritorna dei valori sbagliati (ovviamente). Io ho bisogno di capire se in questa char sta scritto "00" e ritornare direttamente 0. Ho già provato confrontando normalemente ma non funziona. mi sapete dire come posso fare?

grazie
aaa
05/01/10 17:39
nessuno
Non è che ci abbia capito molto ma, se intendi testare se il char contiene il valore nul, basta una if con 0

if(ch==0)
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
05/01/10 19:06
mitor
Postato originariamente da nessuno:

Non è che ci abbia capito molto ma, se intendi testare se il char contiene il valore nul, basta una if con 0

if(ch==0)


esatto

comunque:
if(ch==00)
{
stringa=0; //Riportiamo il char a 0
}
else
{
//Se il char è diverso da 00 fai altro:....
}
Ultima modifica effettuata da mitor 05/01/10 19:11
aaa
05/01/10 19:08
lorenzo
come non funziona "normalmente"?

è una stringa e se la confronti con
if(strcmp(ch, "00") == 0)
    //fai qualcosa


funziona di sicuro
aaa
06/01/10 0:49
nessuno
Bisogna capirsi ... quando indica "riceve un char" probabilmente vuole dire proprio un char!

Quindi non parliamo di stringhe e 00 è inteso come ASCII NUL.

Oppure intende un puntatore a char (una stringa) e quindi intende "00" come sequenza di due caratteri ASCII ...

Insomma, bisogna che chiarisca ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
06/01/10 7:09
edo42
Grazie lorenzo con il tuo modo finalmente funziona!!
Per schiarire dei dubbi io dichiaravo:
char* strHex;
e gli assegnavo un valore con scanf.
ma se io scrivevo strHex == "00" dentro un if non mi dava mai true, non so perchè.
Vi prego di dirmi dove sbagliavo perchè non capisco perchè non funzionava.
aaa
06/01/10 10:09
nessuno
Allora non hai un char ma un puntatore a char (una stringa C).

E per confrontare le stringhe non si usa == ma la funzione strcmp.

In ogni caso, attenzione ad usare il puntatore senza avere allocato la memoria per la stringa.
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
06/01/10 13:09
lorenzo
meglio che ti studi le stringhe allora.
un puntatore a char (char *pt) è solo l'indirizzo iniziale della lista di caratteri.
quindi usando == confronti l'indirizzo della stringa con "00" e non va bene
aaa