Zu den Aufzeichnungen der tutorials.de-Live-Workshops
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
21
ZUGRIFFE
1430
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Shadow1911 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
     

  2. #2
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    3.988
    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.
     

  3. #3
    Shadow1911 Tutorials.de Gastzugang
    Zitat Zitat von sheel Beitrag anzeigen
    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.
    Dankeschön.
    Mit Array hab ich mich noch nicht beschäftigt, weil ich die noch nie genutzt (und gebraucht) habe.
     

  4. #4
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    3.988
    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)
     

  5. #5
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.425
    Die modernere (C++ like) Variante wäre die Verwendung eines Stringstreams.
    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.
    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  6. #6
    Shadow1911 Tutorials.de Gastzugang
    Zitat Zitat von MCoder Beitrag anzeigen
    Die modernere (C++ like) Variante wäre die Verwendung eines Stringstreams.
    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.
    Gruß
    MCoder
    Danke =)
    Ich glaube das ist die Variante die ich brauche.
     

  7. #7
    Shadow1911 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
    ...
     

  8. #8
    Shadow1911 Tutorials.de Gastzugang
    bzw. wie deklariere ich die einzellnen Teile des Strings?
     

  9. #9
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    3.988
    Willst du das Ganze umgekehrt machen oder was meinst du?
     

  10. #10
    Shadow1911 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.
     

  11. #11
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.425
    Zitat Zitat von Shadow1911 Beitrag anzeigen
    Gibt es auch eine Möglichkeit einen solchen String zu erstellen und zu belegen?
    Äh, ich würde sagen, du meinst eine einfache Zuweisung?
    Code cpp:
    1
    
    std::string str = "123456";
    Ansonsten wäre ein simples char-Array die einfachste Lösung.
    Code cpp:
    1
    2
    3
    4
    5
    
    char buffer[7];
    buffer[0] = '1';
    buffer[1] = '2';
    // usw.
    buffer[6] = '\0'; // Kennzeichen für Stringende
    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  12. #12
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    3.988
    Muss es unbedingt über einen String sein?
    Woher kommen die Werte?
     

  13. #13
    Shadow 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.
     

  14. #14
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.425
    Reihenfolge umkehren:
    Code cpp:
    1
    2
    
    std::string str ="123456";
    std::reverse(str.begin(), str.end());
    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  15. #15
    Shadow1911 Tutorials.de Gastzugang
    Danke.
    Eine Frage wäre da noch. Wie zerlege ich einen String in einzellne chars?
    ich habe bis jetzt
    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);
    Da kommt aber immer die Fehlermeldung:
    IntelliSense: Es ist keine passende Konvertierungsfunktion von ""std::basic_string<char, std::char_traits<char>, std::allocator<char>>"" in ""char"" vorhanden.
     

Ähnliche Themen

  1. CSV - Zerlegen
    Von Raven280438 im Forum PHP
    Antworten: 5
    Letzter Beitrag: 04.12.07, 08:59
  2. C# INI zerlegen
    Von toko84 im Forum .NET Café
    Antworten: 5
    Letzter Beitrag: 16.05.07, 10:32
  3. String zerlegen
    Von atango im Forum Java
    Antworten: 11
    Letzter Beitrag: 11.04.07, 18:40
  4. Textdatei zerlegen
    Von igfas im Forum PHP
    Antworten: 2
    Letzter Beitrag: 26.03.07, 15:05
  5. VB.net--Array zerlegen
    Von toggenburg im Forum .NET Archiv
    Antworten: 7
    Letzter Beitrag: 26.04.05, 18:27