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
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
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?
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
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:
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 ?
nic_power Geschrieben 9. März 2005 Geschrieben 9. März 2005 Hallo, "buffer" muss ein "char *" sein. Nic
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
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
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
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.
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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden