Array to String
-
Hi!
Gibt es in C eine Funktion, um ein Array in einen String zu wandeln?
Also. z.B.arr = {'a', 'b', 'c'} in char = 'abc'
Danke!
-
Fast richtig geraten.
So könnte es gehen:char arr[] = {'a', 'b', 'c',0}; puts(arr);
-
Und wenn ich z.B. ein Array habe mit {A, B, C, D, X} und alle Elemente bis auf das X in einen String wandeln möchte?
-
xy345 schrieb:
Und wenn ich z.B. ein Array habe mit {A, B, C, D, X} und alle Elemente bis auf das X in einen String wandeln möchte?
int i; char text[] = { 'A', 'B', 'X', 'C', 'D', '\0' }; for ( i = 0 ; text[i] != 0 ; i++ ) { if (text[i] == 'X') continue; putc (text[i]); }
-
xy345 schrieb:
Und wenn ich z.B. ein Array habe mit {A, B, C, D, X} und alle Elemente bis auf das X in einen String wandeln möchte?
char arr[] = {'a', 'b', 'c',0};
arr ist bereits ein 0 terminiertes Character-Array und somit im üblichen Sprachgebrauch ein String. Weißt du überhaupt was ein String ist oder besser noch - was du mit so einem Datenkonstrukt anfangen willst?
-
Mir geht es grundsätzlich um folgendes:
Wenn ich z.B. Zeichen in ein Array einlese
habe ich ja ein Array mit i Elementen. Wenn ich nun die Zeichen durch
logische Operatoren vergleichen möchte, muss ich ja immer a laif (receiveArray[0] == 'A' && receiveArray[1] == 'B') usw.
vorgehen.
Kann ich dieses Array in z.B. einen String umwandeln, sodass ich einfach
z.B.if (receive == 'AB') usw.
verwenden kann?
-
Vermutlich suchst du strcmp, bzw. strncmp:
if(!strncmp(receiveArray, "AB", 2)) // edit: Klammer vergessen { ... }
-
Hast du meinen vorigen Beitrag gelesen?
Verstanden hast du ihn jedenfalls nicht.
arr ist ein String.
Und weil arr ein String ist braucht man
- ihn nicht in einen String wandeln
- kann auf ihn/es sämtlich str Standardfunktionen anwenden wie strcmp,strstr,str*...
oder konkretif( !strcmp(arr,"AB") ) puts("string ist gleich");
-
Danke yahendrik!
-
Ja, das ist ein typisches Problem für Einsteiger in C.
Strings sind in C kein eigenständiger Datentyp, sondern arrays auf char. Das muss man zunächst verstehen und lernt dann auch, was man mit Zeigern so anfangen kann. Da muss jeder durch!