Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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???

:D

gruß sternchen

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

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?

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:

@sternchen: alles sehr diffus: Wie ist die genaue Aufgabenstellung ? Was ist der Zweck ?

man so lieb, dass du mir so hilfst :D

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

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

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

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.

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

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.