000
15.10.2003, 16:56 Uhr
Anfänger00
|
Hallo, ich kompilere mit dem dev-c++ Compiler und habe ein Problem mit folgendem Programm:
C++: |
#include <iostream> #include <conio.h>// ja ich weiß das,dass nicht portabel ist,ich brauchs aber für getch(); using namespace std;
int mystrlen(const char* buffer) { int x=0; while(buffer[x] != '\0')x++; //Strings in C sind Nullterminiert return x-1; };
int erm_M(char* Wort); //Ermittelt die Anzahl der Moeglichkeiten;
void Permutation(char* &ausg,char Wort[512],int anz_moeg); // (1) hier wird einem String per Reference,die Moeglickeiten // uebergeben; // (2) Wort; // (3) Anzahl der Moeglickeiten;
int main() { char* Ausgabe; char* Wort; int Anzahl;
cout<<" Wort eingeben (auch Zahlen): "; cin>>Wort; Anzahl = erm_M(Wort); Permutation(Ausgabe,Wort,Anzahl); cout<<"Es gibt "<<Anzahl<<" verschiedene Moeglichkeiten das Wort auszugeben.\n"; getch(); cout<<"Das sind: "<<Ausgabe<<endl; getch(); }
int erm_M(char* Wort) { int i = mystrlen(Wort); int ret=1; for(int j=1;j<=i+1;j++) { ret*=j; } return ret; }
void Permutation(char* &ausg,char Wort[512],int anz_moeg) { int p=0; int g = mystrlen(Wort); int i=0; while(i<anz_moeg || ausg[p+g+5] != '\0') { i++; ausg[p]=' '; ausg[p+1]=' '; p+=2; for(int x=0;x<g+1;x++) { ausg[p]=Wort[x]; p++; } ausg[p]=' '; ausg[p+1]=' '; ausg[p+2]='+'; p+=3; } }
|
(Das mit der Permutation ist natürlich noch nicht implementiert,sondern nur ein Test) Wenn ich jetzt einen String mit mehr als 5 Zeichen eingebe stürtzt das Programm ab.Ich habe auch versucht das in der Funktion mit char* &ausg und in dem Haupteil ausgabe mit einem char-array zu machen.Das liefert aber einen Compilerfehler.. Ich bin ratlos und brauche euren Rat,habt ihr ne Idee???
Bearbeitung: |
Sieht das nicht besser so?
|
Dieser Post wurde am 16.10.2003 um 21:43 Uhr von Pablo Yanez Trujillo editiert. |