www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik char pointer


Autor: frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich muss leider einen char pointer verwenden.

Wie kann ich diesen jetzt mit einem anderen verknüpfen?
Hier ein beispiel wie ich es haben möchte:

char *essen ="heute gibt es: ";
char *menu;
scanf(%s, menu);

//Hier sollten nun die zwei strings zusammengefügt werden
tmp = essen+menu
//
portWriter(tmp);


wichtig ist dabei, das ein char pointer verwendet wird, da die funktion 
einen char pointer benötigt....oder es sollte die möglichkeit geben, ein 
anderes format vorher zu konvertieren.

bin leider neu in branche,

hoffe ihr könnt mir helfen

Autor: Axel Krüger (axel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Sven H. (dsb_sven)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da gibt es ne ganze Library mit Stringverarbeitungsfunktionen.

Such mal bei google nach:

c string handling

Ich tippe auf etwa ne halbe Millionen Treffer. Vermutlich hilft dir der 
erste schon weiter.

Autor: frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

danke für die antwort,
aber die funktion funktioniert nur mit arrays, kann das sein?

ich habs gerade so implementiert:

char * essen="Heute gibt es: ";
strcat(juhu, "Käsefondue");

Gruß
Frank

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
frank schrieb:
> char * essen="Heute gibt es: ";
> strcat(juhu, "Käsefondue");

und warum hast du die variable essen wenn du sie nicht verwendest?

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nachtrag:

stell bitte vorher sicher das auch noch Platz in Speicher für das 
Anghänge vorhanden ist, sonst geht es schief.

Autor: Axel Krüger (axel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Prinzip ist eine String ja ein Char Array.

Autor: frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry, schreib fehler,

ich habs so implementiert:

char * essen="Heute gibt es: ";
strcat(essen, "Käsefondue");

warum hängt er sich bei mir dann beim programmablauf auf?

Autor: frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie stell ich fest ob noch platz für das anhängsel vorhanden ist?

Autor: Axel Krüger (axel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
du kannst speicher mit der fkt malloc() zuweisen - such mal danach. 
Wenns nicht geklappt hat, dann bekommst du das mit.

Autor: frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok..ich habs. ich glaub es war kein platz mehr für das anhängsel, hab 
jetzt n char array gemacht ging genauso.

Super, vielen dank! seit echt gut, ihr jungs!

Gruß Frank

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
frank schrieb:
> char * essen="Heute gibt es: ";
> strcat(essen, "Käsefondue");
>
> warum hängt er sich bei mir dann beim programmablauf auf?

weil essen eigentlich const (Konstant) ist dort darst du nichts 
anhängen. Du musst dir schon selber dein speicher besorgen.


char test[1024]; // order char* test = (char*)malloc(1024);
strcat(test, "test1;");
strcat(test, "test2;");
strcat(test, "test3;");
strcat(test, "test4;");
strcat(test, "test5;");
printf("%s", test);

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> warum hängt er sich bei mir dann beim programmablauf auf?

Weil du keinen Speicher hast für den resultierenden String.

Du brauchst ein C-Buch und ein Array von char, um dort den Stringanfang 
reinzukopieren (strcpy) und den zweiten Teil dran zu hängen (strcat).
.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.