Doofe Frage: String to Integer

Moin,

ich habe im Netz nur Anleitungen um Chararrays nach Integer umzuwandeln. Ich möchte aber ein String zu einem Integer umwandeln.

Wie gehts?

Danke
Peter

Die Klasse "String" kennt die Methode "toInt". Liefert einen long-Wert zurück (auch wenn sie toInt heißt). Ruft intern atol() auf um sich auf den internen char-Puffer der String-Klasse zu stürzen.
Es lohnt sich, bei Bedarf mal in die Datei WString.h bzw. WString.cpp (irgendwo tief verborgen unterhalb des Arduino-Verzeichnisses) zu schauen. Da kann man so manches entdecken. :wink:

Edit: Das Thema hatten wir schon mal. Siehe auch Reply #9 in diesem Thread:

Da gibt's auch einen Programm-Schnipsel bezüglich der Anwendung von toInt().

Viel Erfolg
Wolfgang

Da kann man so manches entdecken.

Man kann sehen, dass da unheimlich viel passiert ( dynamische Speicher-Verwaltung z.B., und das wo ein Arduino fast keinen RAM - Speicher hat )

Mein Vorschlag: nimm keinen String, sondern atoi ( char* ) .

@michael_x

Ich kämpfe auch gerade mit String und char. Hast Du Beispielseiten für deinen Tipp wo man mal sieht was wie gemacht wird?

Grüße

harding

google: c/c++ und char[], char* etc.

char test[]="   12345";   // Ein Text mit einer Zahl drin
char test2[80] = "77";    // In Test2 könnten dynamisch noch längere Texte gespeichert werden.
int i = atoi(test);   //  i = 12345 Die Zahl selbst
i = atoi(test2);      // i = 77

michael_x:

char test[]="   12345";   // Ein Text mit einer Zahl drin

char test2[80] = "77";    // In Test2 könnten dynamisch noch längere Texte gespeichert werden.
int i = atoi(test);   //  i = 12345 Die Zahl selbst
i = atoi(test2);      // i = 77

Wenn ich das richtig verstanden habe, sucht arduinosfish eine Umwandlung eines Strings der Arduino-Stringklasse in einen Integer und nicht die Umwandlung eines char-Arrays in einen Integer. Daher nochmal mein vorheriger Verweis auf die toInt()-Methode der String-Klasse.

Wenn er natürlich die Strings ganz wegwirft, ist das char-Array sicherlich ressourcen-sparender, aber eine String-Klasse ist in der Anwendung (meistens) deutlich komfortabler (z.B. Strings mit "=" zuweisen, statt mit strcpy() kopieren, mit "+" oder "+=" zwei Strings verbinden, statt mit strcat(), mit "==" oder "!=" auf Gleichheit testen, statt mit strcmp(), mit "<" oder oder "<" alphabetisch vergleichen, usw.).

[Edit]: Entschuldigung, ich sehe gerade, dass sich der Beitrag von michael_x an harding und nicht an arduinofish gerichtet hat und für dessen Frage sicherlich hilfreich ist.

Schönen Tag noch.
Wolfgang

danke. toInt hilft mir schon mal:)

und ich bedanke mich für das Beispiel zur Anwendung von atoi.

Viele Grüße

harding