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.

String to Integer

Empfohlene Antworten

Veröffentlicht

Hi hab folgendes problem, ich versuche eine Zeichenkette in ein integer umzuwandeln um sie dan anschließen in eine funktion zu übergeben doch es klapt nicht ganz, ich hab gedacht es müsste mit atoi oder strtoint .c_str klappen, jedoch klappt es nicht ganz, es tritt immer mindestens ein Fehler bei auf.

Posting:

string Seriennummer;

string ZehnStelligeNummer;

int Pruefziffer;

cin >> Seriennummer;

ZehnStelligeNummer = Seriennummer.substr(1,10);

Pruefziffer = ????(ZehnStelligeNummer)

Mein Problem ist hier wo die Fragezeichen sind.

Bin dankbar für jede hilfe und danke im vorraus.

Hi hab folgendes problem, ich versuche eine Zeichenkette in ein integer umzuwandeln um sie dan anschließen in eine funktion zu übergeben doch es klapt nicht ganz, ich hab gedacht es müsste mit atoi [...]

Das sollte doch eigentlich gehen?!

Was tritt denn für ein Fehler auf?

Notfalls funktioniert in C++ auch noch die Verwendung von Stringstreams als umwandlung in ein Int

Nun, atoi ist eine Standardfunktion, daher ist der aufruf dort ja einfacherer und bestimmt auch schneller, bevor ich jetzt erst ein Stringstreamobjekt anlegen muss, diesem einen String zuweise und dann mittels Shiftoperator das in eine Variable pack.

Aber ok, Geschmackssache auf Grund der übersichtlichkeit würd ich hier einfach zu atoi greifen. ;)

Also wenn ich folgendes eingebe

....

...

...

Pruefziffer = atoi(ZehnStelligeNummer);

............

.......

.....

dan taucht folgender Fehler auf:

error C2664: 'atoi' : cannot convert parameter 1 from 'class std::basic_string<char,struct std::char_traits<char>,class

std::allocator<char> >' to 'const char *'

Super Danke hat geklappt, echt nett von euch .

Noch eine letzte frage, gibt es auch eine andere möglichkeit oder ist das die einzigste um das Problem zu lösen, weil wir haben in der Schule noch nicht wirklich viel mit streams gemacht..??

Danke nochmals

LG

Noch eine letzte frage, gibt es auch eine andere möglichkeit oder ist das die einzigste um das Problem zu lösen, weil wir haben in der Schule noch nicht wirklich viel mit streams gemacht..??
Noch kein cin oder cout benutzt? Das sind Stream-Objekte ;)

Was du suchst, ist vermutlich

Pruefziffer = atoi(ZehnStelligeNummer.c_str());

Das ist aber eher eine Krücke als eine Lösung, IMHO.

danke das hab ich gemeint

mit sscanf geht's im übrigen auch schön, hab ich grad festgestellt. :)

evtl. wäre vielleicht eine Prüfung vorher sinnvoll (auch bei atoi), ob es sich überhaupt in eine Zahl konvertieren lässt.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

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.