hi alle. ich habe folgenden C code: char s[]="Hallo Welt!"; der funktioniert dieser hier funktioniert auch: char s[20]="Hallo Welt!"; warum geht dieser hier nicht? char s[20]; s="Hallo Welt!"
Und außerdem muss man bei sowas glaub ich String-Funktionen nutzen. Guck mal nach strcpy.
Basti schrieb: > hi alle. > > ich habe folgenden C code: > > char s[]="Hallo Welt!"; > > der funktioniert Ja, das ist eine Initialisierung. > dieser hier funktioniert auch: > > char s[20]="Hallo Welt!"; Auch das ist eine Initialisierung. > warum geht dieser hier nicht? > > char s[20]; > s="Hallo Welt!" Das ist eine Zuweisung. C kennt keine Array-Zuweisungen.
Das mit dem ; war mir klar, das hab ich beim copy&paste vergessen. Okay. dann geht das also nicht. gibt es eine funktion, dem Array im nachhinein einen String zuzuweisen, oder muss ich die Selber bauen?
1.8T-Passat schrieb: > Und außerdem muss man bei sowas glaub ich String-Funktionen nutzen. Guck > mal nach strcpy.
1.8T-Passat schrieb: > Und außerdem muss man bei sowas glaub ich String-Funktionen nutzen. Guck > mal nach strcpy.
>gibt es eine funktion, dem Array im >nachhinein einen String zuzuweisen, oder muss ich die Selber bauen? In der Zeit in der du diese Frage geschrieben hast, hättest du schon die halbe Funktion selbst geschrieben. einfach in einer Schleife Zeichen für Zeichen kopieren.
Okay danke, ich werde dann keine weiteren Anfängerfragen stellen und wenn ich auf ein Problem stoße in Assembler weitermachen, und euch dann auch dummdumm-Antworten geben :-)
Ich verstehe im übrigen nun auch andere Leute, die sagen, dass "C-Kenner" immer eingebildet rüber kommen.
Wo ist das Problem, du hast doch eine konkrete Antwort auf deine Frage bekommen: strcpy Wenn du weitere Detailfragen dazu hast, dann stelle sie.
... nun mal langsam! Ich erkenne in keiner Antwort eine Unhöflichkeit gegenüber dir! Du hast gleich in den ersten Antworten den entscheidenen Tipp bekommen (ausser der mit dem ";", der aber der Korrektheit wegen, auch schon berechtigt war). Wo ist dein Problem mit uns?
Hallo, das Problem besteht darin, dass Basti das aufgegriffene Vorurteil unbedingt bestätigt sehen wollte. Gruß Andreas Schweigstill
Basti schrieb: > Ich verstehe im übrigen nun auch andere Leute, die sagen, dass > "C-Kenner" immer eingebildet rüber kommen. Ich verstehe das C-Kenner anscheinend eingebildet rüberkommen, wenn die Fragen Themen betreffen, die in jedem, aber wirklich jedem, C-Anfängerbuch behandelt werden. Und zwar im Kapitel 5 von 20. Wie, du hast keine Literatur? Jetzt weißt du, warum C-Kenner bei manchen Fragen patzig werden.
Karl heinz Buchegger schrieb: > Ich verstehe das C-Kenner anscheinend eingebildet rüberkommen, wenn die > Fragen Themen betreffen, die in jedem, aber wirklich jedem, > C-Anfängerbuch behandelt werden. Und zwar im Kapitel 5 von 20. Und vermutlich sind diese Anfänger, die dann auch im Berufsleben ihre sog. Teamfähigkeit dadurch zur Schau stellen, dass sie ihre Kollegen mit derart banalen Fragen nerven, auch diejenigen, die sich hier in anderen Diskussionsfäden am lautesten darüber beklagen, dass sie keine hochbezahlte Festanstellung bekommen. Ich kann es einfach nicht verstehen, wieso manche Leute nicht das nötige Schamgefühl besitzen, banale Fragestellungen zunächst durch eigene Recherchen zu lösen. Ich gebe ja durchaus zu, dass es typische Anfänger- fragen gibt, die in keinem Lehrbuch wirklich schlüssig beantwortet werden. Das Initialisieren/Kopieren von Strings bzw. Arrays in C gehört aber definitiv nicht zu dieser Kategorie. Dass C keine "echten" String- Datentypen besitzt, steht ja nun wirklich in jedem Buch schon fast im Vorwort, ebenso der Hinweis, dass viele elementare Operationen kein Bestandteil des Sprachumfanges, sondern der Standardbibliothek(en) ist/sind. Gruß Andreas Schweigstill
Wenn den Profis die Frage zu einfach ist, dann ruhig mal die F... halten. Warum sollen so simple Fragestellungen nicht behandelt werden? Steht dazu was in den Nutzungsbedingungen? Ist doch ein öffentliches Forum, oder? kopfschüttel, kopfschüttel
@mmhh: Hast recht! Ich finde auch, es sollten alle Bücher und Tutorials verbrannt und gelöscht werden! Wozu gibts denn schließlich Foren! Achja, und die Suchfunktion gehört auch abgeschafft, schließlich kann man ja auch Standardfragen immer wieder neu stellen!
Klaus schrieb:
> Wozu gibts denn schließlich Foren!
nicht so gemeint, aber genau das ist der Punkt!
Bis zur ersten Hälfte dieses Postings Beitrag "Re: Array aus chars in C" war noch alles in Ordnung. Dass hier char s[20]; s="Hallo Welt!" eine Array-Zuweisung notwendig wäre, ist für einen Neuling nicht so offensichtlich. Vor allen Dingen dann nicht, wenn er hier char s[20]="Hallo Welt!"; doch anscheinend dieselbe Operation machen kann. Noch hat er nicht verinnerlicht, dass Zuweisung und Iniitalisierung 2 verschiedene Paar Schuhe sind. Aber, das hier > Okay. dann geht das also nicht. gibt es eine funktion, dem > Array im nachhinein einen String zuzuweisen, oder muss ich > die Selber bauen? ist im Grunde eine indiskutable Frage, die einfach nur dokumentiert, das der Fragesteller noch nie in ein C-Buch hineingeschaut hat. Und dafür hab ich ehrlich gesagt immer weniger Verständnis. Das mindeste, was ein Lernender tun kann ist, sich ein Tutorial zu goggeln. Und so schlecht kann ein C-Tutorial gar nicht sein, dass es nicht einen Abschnitt über Stringverarbeitung enthält. D.h. der Fragesteller hat sich überhaupt noch nie irgenwas zum Thema "Lernen in Eigenregie" überlegt. Noch nicht mal die simpelsten Dinge. Wie gesagt: Die Unterscheidung Initialisierung-Zuweisung sehe ich ihm nach. Das ist eine berechtigte Frage und es ist eine gúte Frage. Aber die 2te Frage ist unter jeder Kritik. IMHO (Manchmal frage ich mich schon, wie unsere Vorfahren es jemals von den Bäumen herunter geschafft haben, ohne vorher in einem Forum nachgefragt zu haben wie das geht)
Karl heinz Buchegger schrieb: > (Manchmal frage ich mich schon, wie unsere Vorfahren es jemals von den > Bäumen herunter geschafft haben, ohne vorher in einem Forum nachgefragt > zu haben wie das geht) Das würde eine nette Sig abgeben ;-)
Karl heinz Buchegger schrieb:
> Und dafür hab ich ehrlich gesagt immer weniger Verständnis.
Danke für die sachliche Kommentierung. Deine Einstellung ist
nachvollziehbar. Für dich wäre ein reiner Expertenbereich im Forum
sicherlich besser. Aber bleibe auch den Anfängern erhalten und wenn es
zu plump ist ... tief durchatmen.
imho
es sind nicht alle von den Bäumen gekommen ;)
mmhh schrieb: > Karl heinz Buchegger schrieb: >> Und dafür hab ich ehrlich gesagt immer weniger Verständnis. > > Danke für die sachliche Kommentierung. Deine Einstellung ist > nachvollziehbar. Für dich wäre ein reiner Expertenbereich im Forum > sicherlich besser. Aber bleibe auch den Anfängern erhalten und wenn es > zu plump ist ... tief durchatmen. Keine Sorge. Aber ich glaube du hast es immer noch nicht verstanden, was der Kernpunkt der ganzen Sache ist. Was würdest du in einem Autoforum zu jemandem sagen, der anhebt dass er seinen Motor friesieren möchte, und 5 Postings weiter nachfrägt "Wie rum hält man eigentlich einen Schraubendreher?" Bei dieser Frage geht es nicht um 'Experten'. Es geht um absolute Grundlagen. Es geht darum, dass heutzutage anscheinend immer weniger bereit sind, ein Buch zur Hand zu nehmen. Ein normales, durchschnittliches C-Buch hat so um die 150 Seiten. Erwartest du im Ernst, dass du dir das Wissen, welches auf diesen 150 Seiten vermittelt wird, durch zufälliges Nachfragen in einem Forum aneigenen kannst? Wir sehen gerade hier im Forum immer wieder diese vermeintliche "Rück rüber mit der Info, Alter"-Generation, die auf ewig aus ihrem Halbwissen-Stadium nicht herauskommen wird, weil sie die Grundlagen nicht in einer systematischen Art und Weise vermittelnt bekommen hat, sondern immer nur das bischen nachfrägt, was sie zur Zeit gerade benötigen. Und dann auch nur gerade so viel, dass irgendwie weiter programmiert werden kann, denn verstanden hat man von der Erklärung so gut wie nichts, weil die dazu notwendigen Voraussetzungen schon nicht vorhanden waren. Das auch mit einem Buch die eine oder andere Frage offen bleibt; das man mal etwas nicht auf Anhieb versteht ... das alles ist ok und dafür gibt es Foren um dort Fragen zu stellen. Glaub mir ich weiß wovon ich rede. Als ich angefangen habe, gab es keine Foren oder Online-Tutorials. Eine unklare Stelle in der Literatur bedeutete: Wieder und immer wieder lesen. Wer Glück hatte konnte in einer Vergleichsliteratur denselben Sachverhalt anders geschildert nachlesen. Aber Unklarheit bedeutete oft auch einfach nur: Stunde um Stunde damit zu verbringen, das gelesene einfach auszuprobieren bis man den Dreh raus hatte. Und dann noch 20 Variationen davon um sicherzugehen, dass man den Sachverhalt auch wirklich verstanden hatte. Da geb ich dir recht: Da ist ein Forum schon eine feine Sache. Aber Grundlage, um Programmieren bzw. eine Programmiersprache zu lernen, ist Literatur (oder ein sehr gutes Online-Tutorial). Ich bin jetzt fast 30 Jahre im Geschäft. In dieser Zeit hab ich in mindestens 4 oder 5 verschiedenen Programmiersprachen industriell programmiert (und noch ein paar mehr um mit ihnen zu spielen). Und als ich vor 3 Jahren eine Job in C# angeboten bekommen habe, was denkst du hab ich gemacht? Genau. Ich bin in eine Buchhandlung gegangen und habe die vorhandenen C# Bücher studiert und das gekauft, welches mir am meisten zugesagt hat und hab erst mal ein paar Abende damit verbracht mir einen Überblick zu verschaffen, wie man in C# arbeitet, wie die Library aufgebaut ist, wie typische Idiome in C# aussehen, etc. Im Job hat sich dann das Buch (wieder mal und erwartungsgemäss) als wahrer Schatz erwiesen, indem bei Unklarheiten dort nachgelesen werden konnte. Dadurch das ich das Buch in den (für mich) wesentlichen Teilen durchgearbeitet und den Rest überflogen habe, wusste ich auch, wo was steht und wo ich was finde. Ich verdiene meine Brötchen mit Software entwickeln, so wie viele andere hier. Wenn wir uns nicht zu schade sind, Literatur zum Lernen zu benutzen, warum können dann Anfänger das nicht auch tun? Vor allen Dingen in C, wo es dann doch ein paar 'Spezialitäten' gibt, die man sonst so in keiner anderen Sprache findet. Ist es wirklich zu viel verlangt, 20 oder 30 Euro für ein gedrucktes Buch auszugeben? Ich denke nicht. In einer Zeit, in der man so wichtige Dinge wie Klingeltöne einkauft und bereit ist, für einen Markenaufnäher auf einem Shirt das Doppelte zu bezahlen ohne mit der Wimper zu zucken, muss das drinnen sein.
@ Karl heinz Buchegger: Meine volle Zustimmung! Was "sebstständiges Lernen" bedeutet, das sieht man am eindrucksvollsten, wenn man die Motorik-Entwicklung eines Säuglings beobachtet: - Am Anfang kann das liebe Kind mit viel Aufwand und "Gewackel" kaum den Kopf heben, geschweige denn sich vom Rücken auf den Bauch drehen. - Kaum 2 Jahre später (nach viel selbstständigem Üben und Trainieren) "flitzt" es seiner Mutter im Kaufhaus davon und amüsiert sich hinter dem Kleiderständer köstlich darüber, wie die Mutter nach ihm sucht. Dieses Kind hat auch nicht im Alter von 2 Monaten in irgendeinem Forum nachgefragt, wie man denn nun am besten um eine Ecke rennt. Bernhard
Ist doch amüsant: Fragesteller: > [...] warum geht dieser hier nicht? > > char s[20]; > s="Hallo Welt!" Antwortender 1: > Und außerdem muss man bei sowas glaub ich String-Funktionen nutzen. > Guck mal nach strcpy. Antwortender 2: > Und außerdem muss man bei sowas glaub ich String-Funktionen nutzen. > Guck mal nach strcpy. Antwortender 3: > Und außerdem muss man bei sowas glaub ich String-Funktionen nutzen. > Guck mal nach strcpy. Antwortender 4: > [...] einfach in einer Schleife Zeichen für Zeichen kopieren. Fragesteller: Boah sind C-Kenner eingebildet.
Karl heinz Buchegger schrieb: > Aber ich glaube du hast es immer noch nicht verstanden, was der > Kernpunkt der ganzen Sache ist. Doch, doch, du willst die Leute erziehen. Ich sehe hier auch Nachholbedarf, aber das hier ist ein Technikforum. Laßt den Fragesteller doch austrocknen, wenn es euch zu dumm ist. An der Reaktion merkt ihr, dass eure Methode nicht fruchtet. Solche Threads sind hier schon oft gelaufen, und?
> Doch, doch, du willst die Leute erziehen.
Wie es ja auch so schön hießt:
Gib einem Mann einen Fisch und er wird jeden Tag im Forum nach einem
neuen Fisch fragen; lehre ihn zu fischen und er wird sich bald selbst
über die ständigen Fragen nach Fischen ärgern.
Ich dachte das war: If you give a man fire, he has warm for a day. If you show him how to make fire, he will have warm every day. But if you set a man on fire, he will have warm for the rest of his life.
Gib einem Mann einen Fisch und er ist satt für einen Tag. Gib ihm eine Angel und er wird Dich anmaulen, was er denn zum Kuckuck mit so einer saublöden Schnur anfangen soll, wo er doch essen will. Das ist die Forenversion. Jedenfalls was C-Literatur anbelangt.
Hc Zimmerer schrieb:
> Jedenfalls was C-Literatur anbelangt.
Und elektrotechnische Grundlagen. :-/
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.