In meiner Hauptschleife befindet sich diese Zeichenfolge:
String string1;
Ich habe eine Funktion, die string1 als Parameter verwendet und damit diesen String als SMS sendet.
sendSMS(string1);
Dies ist die Funktion sendSMS () (ohne Parameter):
void sendSMS()
{ sms.beginSMS(remoteNumber);
sms.print(finalstr);
sms.endSMS();
lcd.setCursor(0, 0);
lcd.print("Message sent!");
delay(10000);
}
Meine Fragen sind:
- Wie füge ich den String-Eingabeparameter in sendSMS ein?
- Muss ich auch einen Funktionsprototyp für sendSMS () verwenden? (so dass es dreimal erscheint, 1 im Prototyp, 1 in der Deklaration und eins im Aufruf). Oder muss ich vor der Hauptschleife () keinen Funktionsprototyp verwenden?
programming
c++
user1584421
quelle
quelle
void sendSMS(String& thisIsAString)
oder noch besser, eine konstante Referenz, wenn das String-Argument nicht durch die Funktion geändert werden soll:void sendSMS(const String& thisIsAString)
Ich würde sagen, nie wieder String zu verwenden. Wenn der Code größer wird und die Speichernutzung kritisch ist, stoßen Sie auf eine Sackgasse. Ich weiß, dass es bequemer ist, aber geben Sie Char Arrays eine Chance. Etwas wie:
Ich habe die Funktion in bool geändert. Dies bedeutet, dass Sie es in einer if-Anweisung verwenden können, in der Sie es vervollständigen möchten, bevor Sie mit Ihrem Code fortfahren.
Sie müssen dem Array selbst Speicher zuweisen. deklariere es so:
Hier ordne ich 32 Bytes für Daten und ein zusätzliches Byte für das Zeichen zu, das "Ende der Zeichenfolge" bedeutet (es ist das \ 0).
quelle
Du kannst ändern
void sendSMS()
zu
void sendSMS(String myinputstring)
Sie können myinputstring in Ihrem Code verwenden.
quelle