Ein Zeichen an einen String anhängen

FBIagent

Erfahrenes Mitglied
Hi,

wie im betreff erwähnt möchte ich ein Zeichen an das ende eines Strings anhängen.
Aber ich weis nicht wirklich wie ich das anstellen soll.

Also der String:
Code:
char* str = "";

Dazu habe ich ein Char Array:
Code:
char count[10];

Das erste Element(0) hat beispielsweise a:
Code:
count[0] = 'a';

Jetzt möchte ich dies an den String anhängen sodas er "a" enthält.

Wie hat man das zu realisieren? Keine ahnung wie.:confused:

THX im Vorraus
MFG FBIagent
 
Hy!

Wenn du nur zwei char* aneinanderhängen möchtest, musst du nur mit strcat() arbeiten. Einfach mal in der MSDN schaun.

Allerdings würde ich vorher noch count[1] = 0; setzten, da sonst strcat() u.U. nicht weis wo der String zu Ende ist.
Allerdings kannst du normalerweise einen String der mit
Code:
char *test = "";
reserviert ist nicht mehr ändern, bzw. solltest es nicht tun, da so konstante Strings reserviert werden. Willst du mit dem String arbeiten, kannst du es z.B. so machen:
Code:
char *test;
test = malloc( 30);
So hast du einen String für 29 Zeichen reserviert (30tes ist Terminator)

mfg
uhu01
 
Zuletzt bearbeitet:
moin


Dafür gibt es, unter anderem, die Funktionen strcpy und strcat.
strcpy kopiert einen String in einen anderen überschreib aber den alten Inhalt.
strcat hängt einen String an einen anderen an.


mfg
umbrasaxum
 
Aber das was ich dranhänge ist kein String sondern ein Char deswegen dürfte das nicht
funktionieren oder wie seh ich das?
Ich möchte nicht char* an char* sondern char an char*.
 
Zuletzt bearbeitet:
moin


Das funktioniert auch mit einzelnen Zeichen.
Es gibt ja auch noch strncat bei der du angeben kanns, wieviele Zeiche angehängt werden sollen.


mfg
umbrasaxum
 
Was muss ich den vor dem strcat(); noch machen? Wenn ich strcat(); benutze sagt Windows wenn ich die .exe starte das ein Problem mit diesem Programm auftritt und die
Fehlerberichterstattung öffnet sich. Woran liegt das?

THX im Vorraus
MFG FBIagent
 
moin


Wie benutzt du denn die Funktion?
Ich nehme an das es irgendwo zu einen Pufferüberlauf kommt.


mfg
umbrasaxum
 
Code:
char *str, *str_arr[35];
 
str_arr[0] = "a";
str_arr[1] = "b";
str = malloc(2);
str = "";
 
strcat(str,str_arr[0]);
strcat(str,str_arr[1]);


Hab schon auskommentiert deswegen weis ich das es daran liegt.

Aber mit dieser möglichkeit hat auch danach der char* str den wert "ab"?
 
Zuletzt bearbeitet:
Du machst "malloc(2)", das heißt du kannst darin maximal einen String der Länge 1 speichern! (du hast die abschließende \0 vergessen mitzuzählen)

Aber mit dieser möglichkeit hat auch danach der char* str den wert "ab"?
Das soll ja wohl auch so sein, oder wie? Irgendwie versteh ich nicht so ganz was du willst.

Ansonsten guck dir nochmal an wie strcat arbeitet (z.B. hier).
 
Ich habe nur irgendwo mal gelesen wenn man 2 Zeichenketten zusammenfügt:
Code:
strcat(str,str_arr[1]);
,
das bei diesem Beispiel der neue String in str_arr[1] gespeichert wird.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück