Anzeige:
Ergebnis 1 bis 9 von 9

Thema: [C++] String zu Int

  1. #1
    Registrierter Benutzer
    Registriert seit
    17.05.2004
    Beiträge
    11

    [C++] String zu Int

    moin,
    ich hab da nen kleines programm für die Schule geschrieben nun 2 fragen
    1. Kann man die Ziffern in einem Integer zählen? wenn ja ist 2. überflüssig
    2. Ich muss aufgrund meiner Programmstruktur den string "str" in den integer "zahl" schreiben (atoi fällt weg die komplette zahl brauch also mit 0)
    Bin Anfänger bitte nicht zu kompliziert antworten

    mfg tuxi

  2. #2
    Registrierter Benutzer
    Registriert seit
    27.04.2001
    Beiträge
    62
    Ich verstehe deine Frage nicht wirklich. Ja, du kannst die Ziffern in einem Integer zaehlen.

  3. #3
    Registrierter Benutzer
    Registriert seit
    17.05.2004
    Beiträge
    11
    und wie?
    Ich brauch nämlich folgendes:
    Es soll gezeigt werden, dass jede beliebige Ausgangszahl durch wiederholte Anwendung des folgenden Algorithmus zur Zahl 123 wird: Aus der ursprünglichen Zahl wird einen neue gebildet, bei der an erster stelle die anzahl der geraden Ziffern, an zweiter der ungeraden und an dritter der Gesamtzahl der Ziffern ist

    mfg tuxi

  4. #4
    Registrierter Benutzer
    Registriert seit
    24.06.2003
    Beiträge
    486
    Du brauchst ja nicht nur die Anzahl, sondern mußt dir ja auch jede Ziffer einzeln anschauen, und prüfen
    Code:
    int i = 12345;
    int count = 0;
    
    while(i)
    {
        int act = i % 10;
        i /= 10;
        count++;
    }
    In count ist die Anzahl, und in act ist die aktuelle Ziffer, die mußt du jetzt nur noch auf gerade/ungerade testen.

  5. #5
    Registrierter Benutzer
    Registriert seit
    17.05.2004
    Beiträge
    11
    Gut das hätte ich nun wie schreibe ich drei Integer werte in einen also:

    zahl = zahl1, zahl2, zahl3
    cout << zahl
    ausgabe: z.b. 123

    mfg tuxi

  6. #6
    Registrierter Benutzer
    Registriert seit
    27.04.2001
    Beiträge
    62
    char string[20];
    sprintf(string, "%d%d%d", 1, 2, 3);
    int zahl = atoi(string);


  7. #7
    Registrierter Benutzer
    Registriert seit
    17.05.2004
    Beiträge
    11
    ich will aber eine Lösung ohne string da wirds doch sicher was geben.

    mfg tuxi

  8. #8
    Registrierter Benutzer
    Registriert seit
    27.04.2001
    Beiträge
    62
    Ich hab dir die Loesung schon ueber ICQ gesagt, aber der Vollstaendigkeit halber, damit sich andere nicht die Muehe machen muessen :
    zahl = (zahl1 * 100) + (zahl2 * 10) + zahl3;

  9. #9
    Registrierter Benutzer
    Registriert seit
    24.12.2001
    Ort
    anywhere before EOF
    Beiträge
    236

    anzahl_stellen_im_dezimal_system = zahl ? floor(log(zahl) / log(10)) + 1 : 1;

    Also wenn ich das jetzt richtig verstanden habe willst du ne Möglichkeit die Ziffern die ein Integer Wert in dezimaler Notation minmal belegen würde herauszufinden?
    Wenn ich jetzt nicht total den Denkfehler drinne habe (ungetestet):
    Code:
    anzahl_stellen_im_dezimal_system = zahl ? floor(log(zahl) / log(10)) + 1 : 1;
    Zu beachten ist das die Zahl nicht 0 sein darf weil der log() sonst nicht funktioniert, deshalb das ganze mal schnell mit nem ? Operator Konstrukt versehen (is sowas wie ein if {} else {} wenn du es nicht kennen solltest) und das die 10 im zweiten log() durch eine andere Basis auszutauschen ist wenn es nicht um das deziamle System geht.
    chmod -R +t /*

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •