Frage

Ich arbeite an einem Projekt, einen Arduino und als solche verwenden, die ich von einem seriell Port bin Lesung (die ints 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?

War es hilfreich?

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öschen
sprintf(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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top