pointer problem
-
Hey Leute,
folgendes problem:
Also will ne Zeichenkette eingeben und diese dann über ne funktion veränder, die Zeichenkette soll per Referenz übergeben werden!
also hier mal mein warscheinlich schlechter code
void test(char **string,int schluessel){ int laenge; laenge=strlen(*string); cout <<"\n\n\nLaenge -> " <<laenge; cout <<"\n\n\nString -> " <<*string; } int main(){ char *zeichenkette=; int schluessel; cout <<"Geben sie den String ein\n\n\t"; cin>>*zeichenkette; cout <<"\n\nGeben sie nun den Schlüssel ein ( nur ganz Zahlen)\n\n\t"; cin>>schluessel; test(&zeichenkette,schluessel);´ cout << "\n\nvorher: \n\t" << *zeichenkette; test(&zeichenkette,schluessel); cout << "nachher : \n" << schluessel; system("Pause"); return 0; }nur stürzt das programm immer ab wenn ich die eingabe gemacht habe!
Helft mir bitte!
Gruß Tobias
-
Hallo,
char *zeichenkette=;Hier dürfte der Hund begraben liegen, du hast nen Pointer der irgendwo hin zeigt, aber auf jeden Fall nicht auf das was er sollte:
char *zeichenkette = new char[20];Aber ich würde dir trotzdem empfehlen, strings zu verwenden:
#include <iostream> #include <string> using namespace std; void test(string &s,int schluessel){ size_t laenge = s.length(); cout <<"\n\n\nLaenge -> " <<laenge; cout <<"\n\n\nString -> " <<s; } int main(){ string str; int schluessel; cout <<"Geben sie den String ein\n\n\t"; getline(cin, str); cout <<"\n\nGeben sie nun den Schlüssel ein ( nur ganz Zahlen)\n\n\t"; cin>>schluessel; test(zeichenkette,schluessel);´ cout << "\n\nvorher: \n\t" << str; test(str,schluessel); cout << "nachher : \n" << schluessel; //system("Pause"); Uh, system ist böse, siehe unten return 0; }Wenn du nicht willst, das die Konsole gleich zugeht, guckst du hier: http://www.c-plusplus.net/forum/viewtopic-var-t-is-111042.html
MfG
GPC
-
hey nun habe ich nur noch das problem das ich den string nicht per
Referenz übertragen kann!der compiler mekert
stray '\180' in program
hmm was kann das den sein?
Gruß Tobias
-
tobiS schrieb:
hey nun habe ich nur noch das problem das ich den string nicht per
Referenz übertragen kann!Doch, die Funktion test nimmt eine Referenz auf einen string entgegen. Probier's doch aus indem du nach den Ausgaben noch s = "neu"; schreibst und dann str in main ausgibst.
der compiler mekert
stray '\180' in program
hmm was kann das den sein?
Keine Ahnung, hast n bisschen mehr Info?
-
also hier habe ich zuviel mit kopier
[code]
string str;
int schluessel;
cout <<"Geben sie den String ein\n\n\t";
getline(cin, str);
cout <<"\n\nGeben sie nun den Schlüssel ein ( nur ganz Zahlen)\n\n\t";
cin>>schluessel;
test(zeichenkette,schluessel);´ <--- Hier lag der fehler
[cpp]Danke nochmal