ERLEDIGT
NEIN
NEIN
ANTWORTEN
21
21
ZUGRIFFE
1430
1430
EMPFEHLEN
-
22.08.10 20:45 #1Shadow1911 Tutorials.de Gastzugang
Hallo,
ich habe mit C++ angefangen und wollte wissen wie man eine beliebige Integer Variable z.B. 123456 in einzelner chars zerlegt.
Also will ich aus
zahl = 123456
teil1 = 1
teil2 = 2
teil3 = 3
teil4 = 4
teil5 = 5
teil6 = 6
Danke schonmal im Vorraus
-
Kennst du dich mit Arrays schon aus?
Code cpp:1 2 3 4
int zahl; ... char einzeln[12]; sprintf(einzeln,"%d",zahl);
sprintf funktioniert wie printf, es schreibt aber nicht auf den Bildschirm, sondern in char-Array.
-
22.08.10 21:07 #3Shadow1911 Tutorials.de Gastzugang
-
einzeln[0] ist die erste Stelle,
einzeln[1] die zweite,
einzeln[2] die dritte usw.
Die Anzahl der Stellen bekommst du in dem Fall mit strlen(einzeln)
-
Die modernere (C++ like) Variante wäre die Verwendung eines Stringstreams.
GrußCode cpp:1 2 3 4 5 6 7 8 9 10
#include <sstream> int zahl = 123456; std::stringstream sstr; sstr << zahl; // sstr.str().size() liefert die Anzahl der Ziffern // sstr.str()[0] enthaelt die 1 // sstr.str()[1] enthaelt die 2 // usw.
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
23.08.10 14:18 #6Shadow1911 Tutorials.de Gastzugang
-
23.08.10 15:51 #7Shadow1911 Tutorials.de Gastzugang
Gibt es auch eine Möglichkeit einen solchen String zu erstellen und zu belegen?
z.B.
Code cpp:1 2 3 4 5 6 7 8 9
#include <sstream> using namespace std; . . . stringstream sstr; sstr.str()[0] = 1 sstr.str()[0] = 2 ...
-
23.08.10 15:55 #8Shadow1911 Tutorials.de Gastzugang
bzw. wie deklariere ich die einzellnen Teile des Strings?
-
Willst du das Ganze umgekehrt machen oder was meinst du?
-
23.08.10 16:10 #10Shadow1911 Tutorials.de Gastzugang
Ich brauche beides.
Den 1. Teilw ie ich eine Zahl splitte habe ich jetzt verstanden.
Jetzt will ich einen String erstellen und ihm manuell die Werte zuweißen und dann in eine Variable packen.
-
Äh, ich würde sagen, du meinst eine einfache Zuweisung?
Ansonsten wäre ein simples char-Array die einfachste Lösung.Code cpp:1
std::string str = "123456";
GrußCode cpp:1 2 3 4 5
char buffer[7]; buffer[0] = '1'; buffer[1] = '2'; // usw. buffer[6] = '\0'; // Kennzeichen für Stringende
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
Muss es unbedingt über einen String sein?
Woher kommen die Werte?
-
23.08.10 16:16 #13Shadow 1911 Tutorials.de Gastzugang
Also ich will als Endergebnis haben das mein ursprünglicher String mit
Wert1
Wert2
Wert3
Wert4
Wert5
Wert6
am Ende umgedreht ist. Also:
Wert6
Wert5
Wert4
Wert3
Wert2
Wert1
aber trotzdem als String und mit einer UNBESTIMMTEN Zahlenanzahl.
Wie das am Ende passiert ist mir eigendlich relativ egal.
Bisher schonmal ein Danke an alle die mir versuchen zu helfen.
-
Reihenfolge umkehren:
GrußCode cpp:1 2
std::string str ="123456"; std::reverse(str.begin(), str.end());
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
24.08.10 18:32 #15Shadow1911 Tutorials.de Gastzugang
Danke.
Eine Frage wäre da noch. Wie zerlege ich einen String in einzellne chars?
ich habe bis jetzt
Da kommt aber immer die Fehlermeldung:Code cpp:1 2 3 4 5 6 7
//Auszug: char p10=string1.substr (10,10); char p11=string1.substr (11,11); char p12=string1.substr (12,12); char p13=string1.substr (13,13); char p14=string1.substr (14,14); char p15=string1.substr (15,15);
IntelliSense: Es ist keine passende Konvertierungsfunktion von ""std::basic_string<char, std::char_traits<char>, std::allocator<char>>"" in ""char"" vorhanden.
Ähnliche Themen
-
CSV - Zerlegen
Von Raven280438 im Forum PHPAntworten: 5Letzter Beitrag: 04.12.07, 08:59 -
C# INI zerlegen
Von toko84 im Forum .NET CaféAntworten: 5Letzter Beitrag: 16.05.07, 10:32 -
String zerlegen
Von atango im Forum JavaAntworten: 11Letzter Beitrag: 11.04.07, 18:40 -
Textdatei zerlegen
Von igfas im Forum PHPAntworten: 2Letzter Beitrag: 26.03.07, 15:05 -
VB.net--Array zerlegen
Von toggenburg im Forum .NET ArchivAntworten: 7Letzter Beitrag: 26.04.05, 18:27





Zitieren



Login





