Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme.

C++ Array Zuweisung

Diskussion: C++ Array Zuweisung im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Code: char satz[30] = "Hallo Welt"; Wieso geht das Problemlos ? Also wenn man dem Array gleich am Anfang ...

Antwort
Alt 29.01.08, 20:17   #1 (permalink)
 
Registriert seit: 02.12.07
nookstar Leistung: Facit NTK
Likes: 0
Standard C++ Array Zuweisung

Anzeige

Code:
char satz[30] = "Hallo Welt";
Wieso geht das Problemlos ? Also wenn man dem Array gleich am Anfang einen Wert zuweist.

Code:
char satz[30];
    satz = "Hallo Welt";
Und das hier klappt nicht, nur wenn man einen Index anwählt und dann aber auch nur ein Char zuweist.

Fehler:
Code:
 incompatible types in assignment of `const char[11]' to `char[30]'
Ok Inkompatible Zuweisung aber das bringt mich nicht weiter -.-

Kann es sein das man einem Array nur gleich beim deklarieren einen String zuweisen kann ?


MfG
nookstar ist offline   Mit Zitat antworten
Alt 29.01.08, 20:33   #2 (permalink)
 
Registriert seit: 09.02.06
goflo Leistung: Facit NTK
Likes: 0
Standard

Zitat:
Und das hier klappt nicht, nur wenn man einen Index anwählt und dann aber auch nur ein Char zuweist.
Ist nun einmal C/Cpp
Du kannst den String entweder bei der Deklaration gleich zuweisen (dein Codebsp. 1); später geht das leider nicht mehr so einfach. Dann musst du entweder Zeichen für Zeichen:
Code:
satz[0] = 'H';
satz[1] = 'a';
satz[2] = 'l';
usw...
oder du kannst es auch über eine Stringfunktion machen. Stichwort: strcpy
goflo ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 29.01.08, 20:42   #3 (permalink)
Themenstarter
 
Registriert seit: 02.12.07
nookstar Leistung: Facit NTK
Likes: 0
Standard

Jo genau das habe ich mir auch gedacht
Gut, ich habe nur auf eine Bestätigung gewartet ^^

Danke dir.
nookstar ist offline   Mit Zitat antworten
Alt 29.01.08, 20:57   #4 (permalink)
 
Benutzerbild von bad_alloc
 
Registriert seit: 27.12.07
bad_alloc Leistung: 8086
Likes: 39
Standard

der punkt ist wenn du es zusammenhängend ins aray schreibst kriegt jedes zeichen einen platzt im array da das array ja aus char variablen besteht die nur EINEN buchstaben aufnehmen können.
willst du dir das nicht antun einfach strings nehmen
__________________
You shoot yourself in somebody else's foot.|Dann gabs da noch den Mathematiker der P?=NP in O(1) erklärte.
|[A]| = p(·,|[A]|)+1
bad_alloc ist offline   Mit Zitat antworten
Alt 29.01.08, 21:13   #5 (permalink)
Themenstarter
 
Registriert seit: 02.12.07
nookstar Leistung: Facit NTK
Likes: 0
Standard

Jo klar mit Strings hat man dieses Problem nicht aber ich lese gerade das Buch
"C++ für Spieleentwickler" und dadrin werden die Strings eher weniger Benutzt.
Ich habe auch das Gefühl dass geübte Programmierer eher auf Char Arrays zurückgreifen als auf die String Library , kann das sein oder irre ich mich da ?
nookstar ist offline   Mit Zitat antworten
Alt 29.01.08, 22:09   #6 (permalink)
 
Benutzerbild von Extinction
 
Registriert seit: 02.01.07
Extinction Leistung: Facit NTK
Likes: 0
Standard

Die Pointer Arrythmetik (worauf auch dein char-Problem mehr oder minder zurückzuführen ist) ist etwas, für das die Einen c/cpp hassen und die Anderen es lieben. Geübte Programmierer benutzen es lieber, weil man bei denen mehr spielereien machen kann. Man könnte selbst verwaltungsroutinen für Zeichenketten machen etc.
Denn: Alles was Strings können, kann man mit char arrays auch machen. Nur nicht so einfach...
Da Strings zu string.h gehören und somit in einer fertigen Lib sind, geht das dort nicht (naja, vieleicht schon...). Aber ich benutze auch lieber Strings, weil es sich für kleinere, schnell gecodete Programme sich meiner Meinung nach nicht lohnt, sich mit char arrays rumzuplagen. ^^
Extinction ist offline   Mit Zitat antworten
Alt 30.01.08, 10:36   #7 (permalink)
d13
 
Registriert seit: 28.01.08
d13 Leistung: Facit NTK
Likes: 0
Standard

Zitat:
Ich habe auch das Gefühl dass geübte Programmierer eher auf Char Arrays zurückgreifen als auf die String Library , kann das sein oder irre ich mich da ?
Die String Libary hat, je nach Implementation, einen Overhead. Logischerweise ist ein Array immer die schnellste und kleinste mögliche Methode. Freiwillig würde ich aber std::string immer dem Vorzug geben, da ist mir ein Array doch zu spartanisch
d13 ist offline   Mit Zitat antworten
Alt 30.01.08, 10:51   #8 (permalink)
Themenstarter
 
Registriert seit: 02.12.07
nookstar Leistung: Facit NTK
Likes: 0
Standard

Hehe ganz meiner Meinung ich bin auch eher für die Strings
nookstar ist offline   Mit Zitat antworten
Alt 30.01.08, 11:47   #9 (permalink)
 
Benutzerbild von _fux_
 
Registriert seit: 13.09.05
_fux_ Leistung: Abacus
Likes: 5
Standard

kann mich dem auch nur anschließen. ich benutzte auch strings, allerdings die c++ libary.

wenn man nämlich ein string eingelesen hat, kann man dann anschließend diesen string wie ein array behandeln. beispiel:

string x;
x = "Hallo"
dann ist:

x[0]="H"
x[1]="a"
....ect....

wenn man aber eine ganze zeile einlesen will, benutzt man (ich) gerne getline(cin, x) (bin mir jetzt beim syntax ned sicher.
achso, wenn man die länge der zeichenkette ermitteln will, dann kann man z.B. ne schleife bis "\0" machen. also bis das programm dieses zeichen findet, denn das ist das ende eines strings...
"Hallo\0" so wirds eingentlich gespeichert, du siehst aber nur "Hallo".
gibt auch andere möglichkeiten (getlenght oder so...) aber wenn man mit getline arbeitet dann funtzt das GLAUBE ich ned so... erm ich hoffe diese relativ schlechte erklärung hat geholfen
__________________
und?
_fux_ ist offline   Mit Zitat antworten
Alt 30.01.08, 11:55   #10 (permalink)
CDW
Moderator
 
Benutzerbild von CDW
 
Registriert seit: 20.07.05
CDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: Opteron
Likes: 202
Standard

Zitat:
Ich habe auch das Gefühl dass geübte Programmierer eher auf Char Arrays zurückgreifen als auf die String Library , kann das sein oder irre ich mich da ?
Die sind eher zu faul, sich damit zu beschäftigen und dann wird eben schon bei einfachen Sachen mit Pointern herumgeschossen und irgendwelche Overflows ermöglicht - und als Argument muss immer die angebliche Perfomance herhalten .

Nur in wenigen, speziellen Fällen, wenn wirklich Massen an Strings anfallen, können eigene Konzepte wirklich etwas bringen - solange das Programm aber 99% der Zeit entweder auf den User oder Festplatte wartet, ist es imho überflüssig, sich mit char-Arrays und Low-Level Tricks zu versuchen ins eigene Bein zu schießen. Und dann sollte man wiederum erstmal bei den Datenstrukturen anfangen zu optimieren (Stichwort: Suffix/PATRICIA Bäume).

PS: es ist zwar spaßig und durchaus lehrreich, die meisten Stringoperationen mal selber im Low-Level umzusetzen (und dabei meine ich nicht C ) - aber diese immer zu benutzen ?
Man muss nur bedenken, dass die Libs i.R gut ausgetestet sind - zumindest um Faktoren mehr, als eigene Lösungen, bei denen man doch irgendann irgendwas übersieht.
__________________
Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf!
Selig, wer nichts zu sagen hat und trotzdem schweigt.
CDW ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » C++ Array Zuweisung
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
undefinierte variablen zuweisung Virus Code Kitchen 10 13.11.08 14:55
php curl array string zu array parsen b4ck (Web-) Design und webbasierte Sprachen 5 12.12.07 17:11
von Textarea in Array Henni (Web-) Design und webbasierte Sprachen 2 04.04.07 18:12
C int array[n] zu x int ??? NeoN Code Kitchen 11 25.04.04 20:38
PHP -> Assoziatives array??? simb (Web-) Design und webbasierte Sprachen 2 17.03.02 22:49


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61