PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : char vektoren verketten (Stringverkettung)



Tyrald
17.09.2009, 14:28
Hallo!

Bevor ich einen String mit Peter Fleurys lcd.lbr bzw uart.lbr ausgebe, wollte ich ihn aus mehreren Strings zusammensetzen:


char intro[] = "Hallo";

intro += "Peter";

uart_puts((intro);

Die Funktion erwartet einen Pointer. Hier der Prototyp:
void uart_puts (const char*)

So funkionierts aber nicht!
Auch wenn ich das ein größeres Vektorfeld intro[20] deklariere meckert der compiler: invalid operands to binary +...
Scheinbar ist der Operator += falsch.

Weiß jemand wie das geht?

markusj
17.09.2009, 14:43
Ohne weiteres gar nicht - du kannst Strings nicht ohne weiteres zusammenkleben, insbesondere da C eigentlich noch nicht richtig mit Strings umgehen kann, sondern nur nullterminierte Arrays aus "char" sieht.
Du müsstest entweder an das Ende von "intro" Zeichen für Zeichen "Peter" anhängen, oder, was vermutlich einfacher ist, erst das blanke Intro und dann den String "Peter" hinterher übertragen.

mfG
Markus

sast
17.09.2009, 15:06
oder du verwendest funktionen wie strcpy und strcat



#include <string.h>

char intro[32];
char s[] = "Hi";

strcpy(intro, "Hallo ");
strcat (intro, "Peter");

uart_puts((intro);

strcpy(intro, s);
strcat(intro, "Klaus");

uart_puts((intro);


ist Geschmackssache und wieviel man sonst noch auf den µC haut

sast

Tyrald
17.09.2009, 16:20
Ok, dann hau ich die beiden Strings einfach wie bisher hintereinander raus!

Danke euch ;-D