Array Zellen zusammenfügen
-
Hallo,
ich hab hier ein Problem bei dem ich nicht weiter komme.Und zwar möchte ich einzelne Zellen eines Array in ein anderes übertragen, dabei aber mehrere Zellen aus Array1 in einer Zelle in Array2 zusammenfügen.
Beispiel:
Array1= {a,b,c}
Array2= {ab,c}Hat da jemand nen tip für mich? Thx scbonmal.
-
Dann tu das. Von Hand natürlich, es gibt keine Array-teilweise-kopieren-und-teilweise-zusammenfügen Funktion in der Standardbibliothek. Wo genau ist das Problem dabei? Dass du nicht weiterkommst, ist keine ausreichende Beschreibung deines Problems.
-
Was sollen denn das für Zellen (Typ) sein?
-
SeppJ schrieb:
Dann tu das. Von Hand natürlich, es gibt keine Array-teilweise-kopieren-und-teilweise-zusammenfügen Funktion in der Standardbibliothek. Wo genau ist das Problem dabei? Dass du nicht weiterkommst, ist keine ausreichende Beschreibung deines Problems.
Also bisher hatte ich solche Fälle nur mit Zahlen. Also z.B. array1[]={1,2,3} -> array2[]={123}. Da war das kein Problem weil ich ja weiß welche Stelle im array1 welche Stelle der Endzahl darstellt. Da konnte ich das mit den entsprechenden Potenzen verrechnen und hatte dann meine Endzahl.
Ich hab also nicht wirklich verschoben, sondern eher interpretiert und dann gerechnet.Bei Buchstaben funktioniert das so ja nicht.
Ich hab jetzt weiter gelesen und vermute ich muss einen String benutzen den ich aus den einzelnen Elementen aus Array1 aufbaue und dann als ganzes in Array2 schreibe?
Können Strings denn variable Längen haben oder muss ich mir vorher bewusst sein wie Lang der wird? So ganz ist mir der Umgang damit noch nicht klar.DirkB schrieb:
Was sollen denn das für Zellen (Typ) sein?
Char.
-
Ja, da brauchst du Zeichenketten. Zeichenketten in C sind in erster Linie Arrays von chars und somit nicht von Haus aus dynamisch, du musst dich selber um die Länge kümmern und genügend Speicher besorgen. Dies kann durchaus ein recht anspruchsvolles Vorhaben sein.
Weiterhin gibt es den Header string.h in der Standardbibliothek, in dem eine Menge Hilfsfunktionen für den Umgang mit Zeichenketten deklariert werden. Diese Funktionen verlangen die Konvention, dass am Ende der Zeichenketten ein Nullzeichen steht, die sogenannte Nullterminierung. So können diese Funktionen auf Zeichenketten unbekannter Länge funktionieren, indem sie einfach nach dem ersten Nullzeichen suchen. Dies endet natürlich in einem Desaster, wenn man das Nullzeichen vergisst, weil diese Funktionen dann immer weiter arbeiten und Speicherbereiche anpacken, die gar nicht mehr zur Zeichenkette gehören. Wie gesagt: Es kann ein recht schwieriges Thema sein. Dieser Beitrag ist sicherlich nicht ausreichend als vollständige Anleitung, das Thema solltest du in einem Lehrbuch studieren.