Forum: Mikrocontroller und Digitale Elektronik string in ein uint8


von jan (Gast)


Lesenswert?

hallo,
ich steh son bischen auf dem schlauch beim umwandel von einem string 
eine uint8 zahl.


char puffer"123";
uint8 zahl;

nun wollte ich die puffer in ein uint8 zahl wandeln, komme aber nicht 
weiter.

zahl= atoi(&puffer[0]);

könnte mir einer weiterhelfen
mfg

von Der Andere (Gast)


Lesenswert?

jan schrieb:
> &puffer[0]

1. Die ist die Adresse des ersten Elements des Arrays.
Einfacher könntest du auch schreiben atoi(puffer).

2. Was sagt denn der Compiler? atoi() ist schon richtig, du erhältst 
aber einen Integer, möchtest aber einen 1 Byte unsigned Wert.

Entweder du weisst/vertraust dass in dem String nur ein passender Wert 
steht, dann reicht ein einfacher cast, oder du muss überprüfen, dass der 
Wert auch im gültigen Bereich für uint8 ist bevor du castest.

von Stefan F. (Gast)


Lesenswert?

zahl= atoi(puffer);

von Falk B. (falk)


Lesenswert?

@  jan (Gast)

>char puffer"123";
>uint8 zahl;

>nun wollte ich die puffer in ein uint8 zahl wandeln, komme aber nicht
>weiter.

>zahl= atoi(&puffer[0]);

Prinzipiell richtig, praktisch unvollkommen.
1
char puffer[] = "123";
2
uint8_t zahl;
3
4
zahl = atoi(puffer, 10);  // Zahlenbasis 10

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Falk B. schrieb:
> zahl = atoi(puffer, 10);  // Zahlenbasis 10

Ich wüsste nicht, dass man atoi() eine Zahlenbasis übergeben könnte. Da 
hast Du was velwechsert, nämlich mit itoa() :-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.