# CString Array deklarieren



## Winner (11. September 2007)

Hallo zusammen.

Ich sitze da seid gestern dran und finde einfach nicht die passende Lösung, wie ich es machen kann um ein String Array in C++ zu deklarieren. Ich hoffe ihr wisst was ich meine! Ich meine ein Array, was aus Zeichenketten besteht, wie geht das! In Java u VB ist das kein Problem nur hier tu ich mich etwas schwer und stehte auf dem schlauch!

Kann mir auch einer sagen was ich dazu notfalls über include bei holen kann! Ich habe da zwar schon einigesd bei google gefunden, aber dies bringt mich leiter nicht wirklich weiter.

Im moment löse ich das problem so, indem ich verschieden struct Klassen anlege und diese dann als Array deklariere!
	struct datenXML pathXML[3500];
	struct Koordinaten koord[3500]; //In koord werden die KoordinatenTags gespeichert

Um eure hilfe wäre ich euch sehr dankbar, denn wenn ich dieses hier so weiter mache, dann sprängt das bal den Speicher weil die Dimensionen schon an die grenzen kommen. Ich habe schon einen Stack Overflow wo drunter ich einnen Speicherüberlauf verstehe erzeugt, was nicht so gut ist!

Gruß + Besten Dank


----------



## Chamäleon (11. September 2007)

Ein string ist eine aneinanderreihung von chars und so wird er auch deklariert.

char VARAIBLENNAME[10];

Achte darauf, daß Du hier nur einen String der Länge 9 Buchstaben abspeichern kannst, da der letzte immer ein '\0' sein muß. Den brauchst Du aber nicht extra einzugeben.


----------



## Winner (11. September 2007)

Soweit weis ich das auch schon! Ich hätte aber gerne was du da deklariert hast einen Array raus! Also das ich unter einer Variable eine bestimmte Zeichenfolge öfters abspeichern kann!!

char VARAIBLENNAME[10];   das bringt mich nicht weiter. Ich möchte mehrere Strings in einer Variable speichern! Ich hoffe du verstehst was ich meine oder!

Also in Java geht das so:

String Variablenname[10];

da kann ich jetzt so wie ich es in c++ möchte folgendes tun! 
String Variablenname[0]="Hallo";
String Variablenname[1]="nun";
String Variablenname[2]="komme";
String Variablenname[3]="ich";
.
.
.
Ich hoffe es ist dir jetzt klar wie ich es meine ich möchte immer eine gewisse Zeichenfolge abscpeichern.


----------



## Dorschty (11. September 2007)

Hi,

Dann leg dir doch ein String array an! Damit müsstest du das doch machen können!
Wenn dein Compiler was gegen string hat, dann schreib einfach oben unter deine includes und defines:

using namespace std;

Gruß
Dorschty


----------



## Winner (11. September 2007)

Dorschty hat gesagt.:


> Hi,
> 
> using namespace std;




das habe ich bereits aber es klappt einfach nicht! Kannst du das mal für blöde erklären

also das ist eingebunden
#include <stdio.h>
#include <string>
#include <string.h>
#include <stdlib.h>
#include <iostream>  
#include <windows.h>

using namespace std;

ich kann dann weder Cstring oder String, string deklarieren! Frag mich wie das geht! Haast du einen Tipp wie ich es anstellen kann


----------



## Dorschty (11. September 2007)

Hi,

erstmal kurz ein Beispiel, das so funktioniert, wie du es dir glaube ich wünscht!


```
#include "stdafx.h"
#include <string>
#include "conio.h"

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    string d_array[5];
    int i=0;

    d_array[0]="Hallo";
    d_array[1]="jetzt";
    d_array[2]="komm";
    d_array[3]="ich!";
    d_array[4]="Hehe";

    for(i=0;i<5;i++)
    {
        printf("%s ",d_array[i].c_str());
    }
    _getch();

    return 0;
}
```
Das Programm erzeugt die Konsolenausgabe: "Hallo jetzt komm ich! Hehe"
Ich hoffe das ist so wie du es dir wünscht! 
Du brauchst an includes nur die <string> (zumindest für den Teil).

Wenn du dein String array ausgeben willst musst du hinter die Variable bzw. in dem Fall hinter deinen array-Eintrag ein: c.str() setzen! 
Hoffe das hilft dir weiter!

Gruß
Dorschty


----------



## Winner (11. September 2007)

man besten dank! Das bringt mich hier weiter!

Ganz ganz lieben Gruß ;-)


----------



## Dorschty (11. September 2007)

Prima! Freut mich! 

Gruß
Dorschty


----------



## Chamäleon (11. September 2007)

das wäre dann ein mehrdimensionales array

char Variablenname[20][10];

damit hättest Du 10 mal 19 Zeichen zur Verfügung.


----------



## Winner (11. September 2007)

char Variablenname[20][10];

Und jetzt das nochmal erklärt! Also das erste [20] sind die Anzahl der Elemente und das zweite sind die Anzahl der speicherbaren Zeichen im Array was


----------



## Chamäleon (11. September 2007)

char Variablenname[20];

ist ein String mit 19 speicherbaren Zeichen, wie gesagt das letzte brauchst Du immer für das '\0'.

char Variablenname[20][10];

ist sind 10 Strings zu je 19 Zeichen.


----------



## deepthroat (11. September 2007)

Hi.





Chamäleon hat gesagt.:


> char Variablenname[20][10];
> 
> ist sind 10 Strings zu je 19 Zeichen.


Nein, eigentlich andersrum. 
	
	
	



```
Variablenname[2]; /* der 3te String im Array. */
Variablenname[12][3]; /* das 4te Zeichen im 12ten String */
```

Gruß

PS: Bitte schaut euch an, was Code-Tags sind und benutzt sie auch!


----------



## Chamäleon (11. September 2007)

Sch...e!!

Großes Entschuldigung, Winner, herzlichen Dank, deepthroat!!

Ungläubig, wie ich nun mal bin, habe ich es nachgeschlagen und zu meinem Entsetzen festgestellt, daß ich hier falsch lag. ASCHE AUF MEIN HAUPT!!

Es ist so, wie Deepthroat es darstellt!!


----------

