Strings verknüpfen
-
Hi.
Ich habe zwei stringschar erster_string[30]
und
char zweiter_string[20]
nun möchte ich die beiden + Text in einen neuen String einfügen.
Also so etwas wiechar string[80]
string = erster_string + " hallo " + zweiter_stringWie geht das wirklich in C ?
-
Hallo Markus!
Zunerst muß genug Speicher alloziert werden:
char erster_string[30]; char zweiter_string[20]; erster_string=(char*)malloc(strlen(erster_string)+strlen("hallo")+strlen(zweiter_string)+1); /* +1 wegen '\0' */
Dann mit strcat die string zusammenfügen:
erster_string = strcat(erster_string, "hallo"); /* erster_string+hallo */ erster_string = strcat(erster_string, zweiter_string); /* (erster_string+hallo)+zweiter_string */
Gruß
Michael
-
Moin!
Das geht aber auch so:
#include <stdio.h> int main () { char erster_string[] = "Ich bin ein String!"; char zweiter_string[] = "Ich bin auch ein String!"; char der_string[80]; sprintf(der_string, "%s Hallo! %s", erster_string, zweiter_string); /* Nun ist der_string = "Ich bin ein String! Hallo! Ich bin auch ein String!" und wir können ihn beispielsweise ausgeben: */ printf ("%s", der_string); return 0; }
Wie du vieleicht weißt, kann man mit sprintf(...) furchtbar gut Formatieren.
Um es zu erklären (wenn du sprintf nicht kennst):
sprintf(Wo-hinein, der Formatierte Text)
printf(char * szFormat, ...) = sprintf(stdout, char * szFormat, ...)Hoffe, ich konnte dir weiterhelfen.
-
Hallo!
Bei flyingCoder's Methode ist ein wenig Vorsicht geboten. Es könnte leicht ein 'buffer overflow' entstehen, wenn erster_string, "hallo" und zweiter_string zusammen größer sind als 80 Zeichen.
Gruß
Michael