Anfügen ints auf char * und dann Löschen
-
12-09-2019 - |
Frage
Ich arbeite an einem Projekt, einen Arduino und als solche verwenden, die ich von einem seriell Port bin Lesung (die int
s sendet). Ich muss dann auf einem LCD diese serielle Kommunikation schreiben, die eine char*
nimmt.
Ich brauche mehrere Zeichen von der seriellen Schnittstelle (zwei ganzen Zahlen) in einen String zu lesen. Nachdem beide empfangen wurden, habe ich dann müssen Sie die Zeichenfolge löschen für die nächsten zwei Zeichen vorzubereiten.
TLDR : Wie anfügen ich eine int
zu einem char*
, und dann die Zeichenfolge löschen nachdem er zwei Zeichen?
Lösung
A char ist ein einzelne Zeichen, während ein char * ein Zeiger auf ein Zeichen oder ein Zeiger auf das erste Zeichen in einer Zeichenfolge C sein kann, die eine Reihe von Zeichen durch ein Null-Zeichen beendet.
Sie können keine Zeichen verwenden, um eine ganze Zahl von mehr als 1 Stelle zu vertreten, so werde ich Ihnen in der Tat * char meinte zu übernehmen.
Wenn Sie
char buffer[10];
, dann können Sie buffer
auf eine Zeichenfolge, die einen int n
mit sprintf gesetzt
sprintf(buffer, "%d", n);
Und wenn Sie damit fertig sind, können Sie die Zeichenfolge mit
löschensprintf(buffer, "");
Ich hoffe, das ist, was Sie fordern, und viel Glück!
Andere Tipps
Sie können nicht in ein char * gelesen, es ist ein Zeiger. Sie können die Speicher gültig durch den Zeiger gezeigt wird, vorausgesetzt, er weist auf etwas lesen zu. Wie für die Reinigung, es ist nicht klar, was Sie damit meinen.
Unterm Strich ist, dass Sie einige eigentlichen Code schreiben müssen, das zu tun versucht, was Sie wollen, und fragen Sie, dass.