Der Matze schrieb:
> Ich könnte natürlich die Stringfunktion strcat() verwenden. Mit der kann
> ich ja aber nur zwei Strings verketten.
du brauchst auch noch strcpy und einen weiteren Buffer, in dem du den
kompletten String zusammenbaust, ehe du ihn an VCP_send_str übergeben
kannst.
mit dem ersten strcpy stellst du im Zielarray den ersten Teilstring
rein. Und dann werden mittels strcat alle weiteren Teilstrings da hinten
drann gehängt.
1 | char Dummy[50];
|
2 |
|
3 | strcpy( Dummy, "Testfunktion" ); // erster Teil. einfach einkopieren
|
4 | strcat( Dummy, " (" ); // dann: drann hängen
|
5 | strcat( Dummy, TestVariable );
|
6 | strcat( Dummy, ")" );
|
7 |
|
8 | VCP_send_str( Dummy );
|
Oder aber du rufst VCP_send_str einfach 3 mal auf
1 | VCP_send_str( "Testfunktion (" );
|
2 | VCP_send_str( TestVariable );
|
3 | VCP_send_str( ")" );
|
die Variante hat den Vorteil, dass du kein Zwischenarray brauchst,
welches du dimensionieren musst und das daher auch überlaufen kann.
Sie hat aber den Nachteil, dass je nach dem was sich VCP_send_str
verbirgt, die zeitliche Abfolge unter Umständen leicht anders sein kann,
bzw. wenn VCP_send_str von sich auch zb einen \n hinten dran hängt, das
Ergebnis anders ist.