PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : c++ arrays etc



zulu1336
21.10.2008, 16:47
hi,ich suche jmd der mir kurz erklärt wie man arrays richtig nutzt hab schon ne weile gegoogelt aber hab fast nur sachen gefunden die wir im unterricht nochnicht hatten bzw. ich nicht verstehe.Schreibe am Fr ne Arbeit und wüsste gerne wie man nen Programm schreibt was ein Wort rückwärts wieder ausgibt.Hab mir den Aufbau ungefähr so vorgestellt

char lol[];
cin << lol[0]=
cin << lol[1]=
cin << lol[2]=
cin << lol[n]=

cout << lol[n]
cout << lol[2]
cout << lol[1]
cout << lol[0]

leider muss ich zugeben das ich es wohl nochnicht sorecht verstanden hab-.- jetzt bitte keine Flamez vonwegen dann pass besser im Unterricht auf;D

Sector
21.10.2008, 16:53
for(i=strlen(lol); i=0, i--)
{
printf("%s\n", lol[i];
}

Ist zwar C (C ftw xD) aber nja müsste denke ich mal funktionieren ..

RikuXan
21.10.2008, 17:07
#include <iostream>
using namespace std;

main()
{
char wort[65];
cin >> wort;
cout << wort << "\n";
for( int i = strlen(wort)-1 ; i >= 0 ; i-- )
{
cout << wort[i];
}
}

Das ganze nochmal mit C++ Funktionen und kompilierbereit :)

MfG RikuXan

krusty
22.10.2008, 00:05
=/
könnte mir jemand schnell den befehl

strlen(wort) erklären ?

Added after 1 hours 7 minutes:

habe eben selbst noch ein kleines programm geschreiben,


#include <iostream>
#include <conio.h>

using namespace std;

int i; //brauchen wir fuer die for schleife
char wort[10]; //ein char array welches 9 buchstaben speichert.

int main()
{
cout <<"Geben Sie ein Wort ein"<<endl;

//der benutzer wird aufgefordert ein wort ein zu geben
cin.getline (wort, 10);
//hier wird die eingabe des benutzer in dem array wort gespeichert,
//dahinter ist der speicherplatz angegeben, den die eingabe im array //besetzen darf

system("cls");
//dieser befehl loescht den bildschirm, sieht einfach schoener aus.
cout <<"das Wort "<<wort<<" wird rueckwerts"<<endl;

for (i=10;i>=0;i--)
{
//hier wird in einer for schleife rueckwerts gezaehlt
//i ist gleich 10, solange i groesser oder gleich 0 ist laeuft die schleife
//am ende wird von i eine 1 abgezogen, damit von 10 runter bis 0 //gezaehlt wird
cout <<wort[i]; //hier wird die jeweilige array variable ausgegeben,

}
cout <<" \ngeschrieben."<<endl; //noch ein netter antwortsatz
getch();
//das programm soll sich nicht sofort schliessen

return 0;
}

hier ist das problem, dass der benutzer nicht so viele zahlen eingeben kann wie er will, sonder nur 9.

glaube das progg von RikuXan ist aber leichter zu verstehen =P
vlt kann mir ja auch jemand bei meinem kleinen problemchen da oben helfen =/

ich hab mit arrays mit einem "lotto progg" beigebracht bekommen. *laut meinem buch*
wenn du willst kann ich dir mal ein paar beispiele daraus schicken.

YannicK
22.10.2008, 01:30
der befehl strlen(wort) sagt wahrscheinlich wieviele buchstaben das wort hat :)

Das könntest ja in dein script einbauen ;p zählen wieviel buchstaben es hat und dan irgendwie


char wort[10]; //ein char array welches 9 buchstaben speichert.

hier reinbinden char wort[wortlänge] ;p

-[RiDER]-
22.10.2008, 10:22
Hi :D


for(i=strlen(lol); i=0, i--)
{
printf("%s\n", lol[i];
}
Ist zwar C (C ftw xD) aber nja müsste denke ich mal funktionieren ..
"C ftw", da stimme ich Dir ganz zu :)
Aber der Kode, den Du da gepostet hast, ist Schwachsinn.
Du meintest sicher printf("%c", lol[i]); oder ich habe die Aufgabenstellung falsch verstanden.


habe eben selbst noch ein kleines programm geschreiben,


#include <iostream>
#include <conio.h>

using namespace std;

int i;
char wort[10];

int main()
{
cout <<"Geben Sie ein Wort ein"<<endl;
cin.getline (wort, 10);

system("cls");

cout <<"das Wort "<<wort<<" wird rueckwerts"<<endl;

for (i=10;i>=0;i--)
{
cout <<wort[i];
}
cout <<" \ngeschrieben."<<endl;
getch();

return 0;
}

Wer hat Dir beigebracht, alles derart mit Komentaren zu versauen!?
Die sollen den Kode verständlicher machen... Deine zerstören ihn!


hier ist das problem, dass der benutzer nicht so viele zahlen eingeben kann wie er will, sonder nur 9.
Wenn Du schon C++ schreibst, warum nicht gleich STL mit strings?
Gut, das ist keine Antwort auf Deine Frage!

Ich würde empfehlen, argv[1] zu bemühen, dann musst Du Dich nicht um die Speicherreservierung kümmern.
Oder aber Du deklarierst Deine Variable als char word[99999999999], heutige Rechner (lass sie uns "Speicherbestien" nennen!) dürften damit keine Probleme kriegen!
Erstere Lösung ist aber um einiges sauberer. ;)


glaube das progg von RikuXan ist aber leichter zu verstehen =P
vlt kann mir ja auch jemand bei meinem kleinen problemchen da oben helfen =/
Benutze strlen() um die Länge des Strings rauszukriegen oder die C++ string-Klasse, so wie Du das jetzt umgesetzt hast, ist es schlichtweg falsch. Es ist kein syntaktischer oder sonstiger sprachspezifischer, sondern ein logischer Fehler. Die kann der Compiler nicht ergründen (was auch gut ist und sich niemals ändern wird bzw. darf) und spuckt Dir keinen Error aus, aber Dein Programm ist vuln. ;)

GreetZ RiDER :D :D :D

krusty
22.10.2008, 10:50
das mit den kommentaren tut mir leid -.-*
wollte nur, dass es der zulu1336 dann auch kapiert, wenn er das noch nicht verstanden hat.

Sector
22.10.2008, 12:17
Joa Jack, muss dir rechtgeben, war eben auf die schnelle .. ^^