Übergabe von 2 dimensionales Array

Nebuchadnezar

Erfahrenes Mitglied
hi ich hab eine Frage zu meinem Problem, ich weis über 2 dimensionale Arrays gibts schon genug threads aber eben nicht zu dem Problem:

ich erstelle mir so ein Array mittels
Code:
char eingabe[20][20]
nachdem ich in jede Zeile ein Wort geschrieben habe bzw. eine Liste an Wörtern die in dem Array gespeichert sind habe, möchte ich irgendwie zählen wieviele wörter sind gespeichert. Bei einzelnen Buchstaben in einem eindimensionalen Feld ist das kein Problem aber in diesem fall steh ich an:
Was muss ich für strlen von diesem Array angeben damit ich die Anzahl zählen kann?
Die Idee schaut wie folgt aus:
Code:
char eingabe[20][20];
void tausche(char szEingabeA[],char szEingabeB[]);
void sortieren(char szEingabe[]);


void main()
{
	int i;
	
	for (i = 0;i < 5;i++)
	{
		gets(eingabe[i]);
	}
	cout << strlen(eingabe) << endl;

	
	//sortieren(&eingabe);

	getch();


	//to do
}

aus dem Code ersichtlich ist ja, dass ich mit der for-schleife das Array auffülle.
Danach will ich die Anzahl an Elemente zählen da ich diese Alphabetisch sortieren will. Des größten Teil des Algorithmus dafür hab sich schon - zugegeben ist nicht besonders schwer nur im Moment häng ich bei diesem
*reusper* grundlegenden Problem.
 
Bedenke
char eingabe[20][20];
Ist ein Array von 20 C-Strings(char Array) die maximal 19 Zeichen aufnehmen können.
Da ein C-String ind der Regel mit char* Referenziert wird ist verständlich dass char [][] vom Prinzip ein char * [] bzw char ** ist
Bedenke jedoch dass in dem Fall der Speicher (20*20 Byte) am Stück im Speicher liegen. Wenn du den Speicher für jeden String dynamisch allocieren würdest ist das nicht garantiert
 
Hmm wie gesagt ich hab damit ein Problem. Auch wenn ich programmieren kann, bitte rede nicht chinesisch - nach 4 Jahren komm ich mit arrays u zeiger wenns advanced wird no immer ned gscheid zrecht :-(
was allokier ich da dynamisch bitte :(
 
Original geschrieben von Nebuchadnezar
Hmm wie gesagt ich hab damit ein Problem. Auch wenn ich programmieren kann, bitte rede nicht chinesisch - nach 4 Jahren komm ich mit arrays u zeiger wenns advanced wird no immer ned gscheid zrecht :-(
was allokier ich da dynamisch bitte :(
Hm, eventuell solltest du noch etwas mehr Grundlagenwissen aneignen. Mehr hat basd nämlich mit seiner Antwort auch nicht vorausgesetzt. Hast du ein gutes Buch zu C oder C++? Es gibt auch Online eine Menge Material. Hier im Forum findest du sicher eine Menge Literaturtipps.
 
klar c/c++ kompendium vom dirk louis aber leider hilft mir das auch nicht in diesem fall weiter und die meisten dinge die ich mal ausprobier hab benötigen größtenteils zum glück keine arrays oder zeiger^^.
Dass ich noch die richtige Literatur über Zeiger benötig weis ich selber ;(
 
Des mit dem dynamisch war nur so eine Nebeninformation.
Aber wenn du C/C++ Programmieren willst musst du dich halt oft mit Zeigern "rumärgern".
Und wenn man es gerafft hat ist es gar net so schlimm (aber immer fehlerträchtig wenn man net aufpasst).
Wenn du schon 4 Jahre Programmierst und bei C/C++ jetzt bleiben willst solltest du auf Jeden Fall lernen wie man mit Arrays und vorallem Zeigern arbeitet und nicht versuchen dich ständig davor zu drücken !
 
danke für den hinweis nur wegen diesem problem werd ich nicht 30€ ausgeben.
Außerdem wie gesagt hab ich schon so nen fetten Wälzer vom dirk louis - damit kannst einen erschlagen ;)
 
Ich fürchte bei Büchern zählt die Qualität - nicht die Quantität. Ausserdem ist das Werk DAS Standardwerk (schliesslich ist es von den Erfindern von C).
Aber musst du wissen.
 
Zurück