sternchen_1709 Geschrieben 8. März 2005 Geschrieben 8. März 2005 hallo ihr lieben, ich muss nur ein kleines problem lösen und das gestaltet sich momentan als sehr schwierig. grob gesagt möcht ich nur einen int-wert in einen stringwert übergeben, wobei der int-wert die 10 000 leicht überschreiten können muss, weswegen ich das mit char schonmal nicht machen kann. ... constant int number; int feld[]; feld = new int Feld[number]; for (int s=0; s<number; s++ ){ feld[s] = s; } ziel dabei ist es namensbezeichnungen für die 10000 objekte zu erzeugen. das objekt 15 soll auch auf feld[15] liegen. ich möchte also machen koennen... //pseudocode string 15 = feld[15]; wahrscheinlich geht das fix. in java gibts da glaub ich einfach ne funktion .toString. aber wie gesagt es ist wichtig das ich danach auf jeden in als zugriffwert einen string als namen zurückgegeben werden muss. hat da irgendwer ne kleine lösung??? gruß sternchen Zitieren
nic_power Geschrieben 8. März 2005 Geschrieben 8. März 2005 Hallo, Habe ich das richtig verstanden, dass Du ein integer in einen String umwandelt möchtest? Dafür gibts beispielsweise sprintf(). Diese Funktion arbeitet im Prinzip wie printf(), nur dass das Ergebnis nicht auf dem Bildschirm ausgegeben wird sondern in den angegebenen string geschrieben wird: sprintf(buffer,"%d", meinInt) schreibt "meinInt" in menschenlesbarer Form in "buffer". Nic Zitieren
sternchen_1709 Geschrieben 8. März 2005 Autor Geschrieben 8. März 2005 naja, das hab ich auch ausprobiert. nur wie greife ich dann auf element 2500 zu? ich muesste auf das 2500ste element zugreifen koennen. also... a = string[2500] und a würde mir den string "2500" liefern. ich habe dann nämlich 50000 elemente und jedes soll seinen eigenen namen bekommen in aufsteigender reihenfolge von integern. was meinst du dazu? oder versteh ich dich falsch? Zitieren
nic_power Geschrieben 8. März 2005 Geschrieben 8. März 2005 Hallo, Du verwendest ein Array von "char*", um die Strings zu speichern. int i; for (i=0; i<laengeDerList; i++) { sprintf(buffer,"%d",meinWert); } Nic Zitieren
sternchen_1709 Geschrieben 8. März 2005 Autor Geschrieben 8. März 2005 wenn ich das so mache wie du sagst, also: int size=1000; int *Feld; Feld= new int[size]; int *buffer; buffer = new int[size]; for (int s=0; s<size; s++ ){ Feld[s]=s; sprintf(buffer[s], "%d", Feld[s]); name = buffer[s]; } dann krieg ich diese fehlermeldung... error C2664: 'sprintf' : Konvertierung des Parameters 1 von 'int' in 'char *' nicht moeglich wat mach ich nur falsch? :confused: Zitieren
M.A.Knapp Geschrieben 8. März 2005 Geschrieben 8. März 2005 @sternchen: alles sehr diffus: Wie ist die genaue Aufgabenstellung ? Was ist der Zweck ? Zitieren
nic_power Geschrieben 9. März 2005 Geschrieben 9. März 2005 Hallo, "buffer" muss ein "char *" sein. Nic Zitieren
sternchen_1709 Geschrieben 9. März 2005 Autor Geschrieben 9. März 2005 man so lieb, dass du mir so hilfst also ich hab das versuch aber er schmeisst immer wieder die gleiche fehlermeldung raus. viell kannst du damit ja was anfangen. bin kein genie in c++ ------------ error C2664: 'sprintf' : Konvertierung des Parameters 1 von 'char' in 'char *' nicht moeglich Die Konvertierung eines ganzzahligen Typs in einen Zeigertyp erfordert ein reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat ------------ gruß sternchen Zitieren
nic_power Geschrieben 9. März 2005 Geschrieben 9. März 2005 Hallo, du solltest Dir angewöhnen, den Code zu posten, sonst können wir Dir nicht helfen. [Glaskugelmode] Du hast wahrscheinlich buffer = new int; durch etwas der Art buffer = new char; ersetzt. Das löst das Problem abernicht, da Du dann beim sprintf() ein einzelnes char ansprichst, nicht jedoch einen char *. Diesen benötigt sprintf aber als erstes Argument! [/Glaskugelmode] Nic Zitieren
sternchen_1709 Geschrieben 9. März 2005 Autor Geschrieben 9. März 2005 ach ja nochmal bezüglich der diffusen aufgabenstellung ;o)! also ich will einfach nur einen intWert aus einem feld mit integern auslesen und diesen dann in einen string umwandeln damit ich ihn danach als string benutzen kann. in dem string wollt ich gerne an jeden beliebigen index springen koennen und mit den dort befindenden wert holen. hoffe dass ich das wenigsten halbwegs gut erklären kann lieben gruß sternchen Zitieren
carstenj Geschrieben 9. März 2005 Geschrieben 9. März 2005 Hi, #include <iostream> #include <cstdio> #include <cstring> using namespace std; const int MAX = 100; int main() { int i=0; char text[MAX]; char feld[MAX][MAX]; for(i =0; i<100; i++) { snprintf(text, MAX, "Objekt%i", i); strcpy(feld[i], text); } cout << feld[45] << endl; } [/php] ich weiss auch nicht, ob ich dein Problem richtig verstanden habe, aber vielleicht hilft dir ja mein Code. Ferner gehe ich mal davon aus, dass du C++ benutzt. Dann würde ich empfehlen, dir mal std::string, std::vector anzugucken, da diese Dinge einem Einsteiger das Leben schon enorm einfacher machen können und auch für dein Problem sinnvoll nutzbar sind. Zitieren
sternchen_1709 Geschrieben 9. März 2005 Autor Geschrieben 9. März 2005 Oh mensch jup, das sieht gut aus. ;o))))) ich danke euch sehr und hoffe auch mal hilfe leisten zu koennen! viele liebe grüße und noch einen schoenen abend sternchen Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.