hi.
Hätt mal ne frage:
Ich will einen Namen einlesen lassen udn lasse deswegen dynamisch Speicher für ein char reservieren. Allerdings möchte ich den Namen eingeben und dann mit Hilfe irgendeiner Funktion erreichen, dass der jeder Buchstabe des Namens in einem Feld einen Arrays steht.
Bsp:
Gibt es da einen MÖglichkeit? Ich möchte nämlich nicht jeden BVuchstaben einzeln einlesen lassen und durch ein enter trennen lassen.
Hoffe ich habe mich verständlich ausgedrückt
geschrieben von Daniel am 25.09.2004 - 22:30
Huhu..
mach dich mal über String Tokenizer schlau. Musst mal googlen, ich glaube damit geht sowas.
Daniel
geschrieben von Shaddow am 25.09.2004 - 23:35
also ich habe jetzt hier was: http://www.math.uni-wuppertal.de/~a....p22_1.html
ziemlich weit unten sind die Tokenfunktionen, aber um ehrlich zu sein, weiß ich net wirklich welche ich nehmen soll.
geschrieben von Daniel am 25.09.2004 - 23:41
Hmm.. is dafür auch bissi zu kompliziert denke ich. Du kannst auch einfach substr() nehmen. Musste halt nur durch ne Schleife laufen lassen. Und ich denke du musst die string includen.
Daniel
geschrieben von Martin am 26.09.2004 - 11:11
Ave,
mmh, ich bin schon ein bischen länger aus der Materie heraus aber ich glaub behalten zu haben, dass du mit einem Zeiger auf diese char Variable jene dann als ganz normales Array betrachten und bearbeiten kannst.
char * name[128] = "Martin Krüger";
mfg martin
Nachträgliche Änderung: char name[218] = "Martin Krüger" muss es lauten.
geschrieben von Daniel am 26.09.2004 - 11:13
int
geschrieben von Martin am 26.09.2004 - 11:20
Ave,
int gleich integer (4 byte) =>
Der int-Datentyp wird als 4-Byte-Ganzzahl gespeichert.
Mit dem int-Typ können ganze Zahlen von -2.147.483.648 bis einschließlich 2.147.483.647 dargestellt werden.
Der entsprechende Datentyp in .NET Framework ist System.Int32. Die Eigenschaften und Methoden des int-Datentyps stimmen mit denen von System.Int32 überein.
mfg martin
geschrieben von Daniel am 26.09.2004 - 11:23
lol Martin ;)
Ich weis wohl was int ist bzw. was es kann. Ich Frage mich nur wie du so einen char aufteilen willst und in einen int casten bzw. speichern willst
Vlt. bin ich auch noch nicht richtig wach.. aber ich würde ja mal sagen das das net geht ^^
Daniel
geschrieben von Martin am 26.09.2004 - 11:30
Ave,
richtig, deswegen hab ichs auch verändert! ;) zum besseren hoff ich. Beim stöbern in der MSDN ist mir aufgefallen das C und deren Datentypen garnicht mehr verwendet werden.
Bsp. oben: ein Zeiger von Typ char auf ein 128 byte großes Array. Man sollte jetzt jedes Arrayelement per name[1] ansprechen können.
Natürlich kann man sich auch den ASCII Code als Integer zrückgeben lassen können. int i = (int) name[0];
mfg martin
geschrieben von Shaddow am 26.09.2004 - 11:50
Aber ich ahbe doch noch gar kein Array!
Ich hatte mir das so gedacht:
Funzt auch nicht, is doch im Prinzip das selbe, wie meins, blos, dass du Zeiger und ich Dynamische Speicherverwaltung genimmen hab
ach ja falls es jm. interessiert:
hier die Fehlermeldung
Zitat
orginal geschrieben von Microsoft Visual C++ Complier
--------------------Konfiguration: dat01 - Win32 Debug--------------------
Kompilierung läuft...
dat01.cpp
D:\Programme\MVS C++\MSDev98\MyProjects\alphabet\dat01.cpp(15) : error C2679: Binaerer Operator '>>' : Kein Operator definiert, der einen rechtsseitigen Operator vom Typ 'class std::basic_string<char,struct std::char_traits<char>,class std::allocato
r<char> >' akzeptiert (oder keine geeignete Konvertierung moeglich)
D:\Programme\MVS C++\MSDev98\MyProjects\alphabet\dat01.cpp(17) : error C2297: '<' : Ungültig, da der rechte Operand vom Typ 'unsigned int (__thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::*' ist
D:\Programme\MVS C++\MSDev98\MyProjects\alphabet\dat01.cpp(18) : error C2679: Binaerer Operator '=' : Kein Operator definiert, der einen rechtsseitigen Operator vom Typ 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator
<char> >' akzeptiert (oder keine geeignete Konvertierung moeglich)
Fehler beim Ausführen von cl.exe.
dat01.obj - 3 Fehler, 0 Warnung(en)
geschrieben von Daniel am 26.09.2004 - 12:00
Wenn du Speicher dynamisch frei gibst hast du auch einen Zeiger auf den Speicherbereich!
geschrieben von Shaddow am 26.09.2004 - 12:03
Ja und was bringt mir das dann???
Was soll ich mit eienm Zeiger auf den Speicher?
Soll ich den Zeiger auf das Erste Element meines Strngs initialisieren und dann inkrementieren, sodass es alle durchläuft?