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
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.
@ 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 |
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.