- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 4 von 4

Thema: char vektoren verketten (Stringverkettung)

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    04.12.2006
    Beiträge
    32

    char vektoren verketten (Stringverkettung)

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo!

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

    Code:
    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?

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    36
    Beiträge
    1.225
    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

  3. #3
    Erfahrener Benutzer Roboter-Spezialist Avatar von sast
    Registriert seit
    30.11.2004
    Alter
    53
    Beiträge
    502
    oder du verwendest funktionen wie strcpy und strcat

    Code:
    #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

    雅思特史特芬
    开发及研究

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    04.12.2006
    Beiträge
    32
    Ok, dann hau ich die beiden Strings einfach wie bisher hintereinander raus!

    Danke euch ;-D

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress