tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von saftmeister
  • 1 Beitrag von saftmeister
ERLEDIGT
JA
ANTWORTEN
9
ZUGRIFFE
449
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Shooter2k
    Shooter2k Shooter2k ist offline Mitglied Brokat
    Registriert seit
    Mar 2002
    Ort
    Hamburg
    Beiträge
    381
    Hallo liebes Forum,
    ich habe ein Problem. Ich würde gerne an einem String der nur aus Zahlen besteht an bestimmter stelle eine weitere Zahl anfügen.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    string code = "215472560524632";
     
    //die Zahl die eingefügt werden soll
    int zahl2 = 5;
     
    //An stelle anfügen oder ersetzen
    code[4], wobei code[4] auf die Zahl 7 Zeigt, die ich mit der Zahl 5 ersetzen möchte.
     
     
    // Der String sollte jetzt so aussehen:
    string code = "2154->5<-2560524632";
    215452560524632

    Hat jemand eine Idee, wie ich das in C++ umsetzen kann?

    Vielen Dank

    gruß
     
    Wer mit dem Strom schwimmt, erreicht die Quelle nie.

  2. #2
    Avatar von Bratkartoffel
    Bratkartoffel Bratkartoffel ist offline gebratene Kartoffel
    tutorials.de Premium-User
    Registriert seit
    Jun 2007
    Ort
    Passau (Niederbayern)
    Beiträge
    1.394
    Hi,

    ich kann dir nur sagen, wie ich das in C machen würde, eventuell hilft dir das aber auch weiter.
    Angenommen du willst eine Zahl wie oben geschrieben an den Index 4 setzen.

    Möglichkeit 1:
    Du erstellst ein neues Array / String und kopierst erst alles bis (n-1) da rein, dann die Zahl und abschließend den Rest ab (n).

    Möglichkeit 2:
    Mit realloc das Array größer machen, mit memmove alles ab (n) eine Position weiterschieben und in der Lücke dann die Zahl einfügen.

    Gruß
    BK
     
    Über eine gute Bewertung freut sich jeder ;)
    Bitte erledigte Threads als "Erledigt" markieren.

    "Though a program be but three lines long, someday it will have to be maintained.''
    -- Geoffrey James, "The Tao of Programming"

  3. #3
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Willst du wirklich einfügen oder nur ersetzen?
    Dein Beispielergebnis hats nämlich nur ersetzt.
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  4. #4
    Avatar von Shooter2k
    Shooter2k Shooter2k ist offline Mitglied Brokat
    Registriert seit
    Mar 2002
    Ort
    Hamburg
    Beiträge
    381
    Hallo,
    vielen Dank für die Antworten.
    Ich möchte es lieber ersetzen statt hineinkopieren. Kannst du mir ein Codebeispiel dazu geben?

    Vielen Dank
     
    Wer mit dem Strom schwimmt, erreicht die Quelle nie.

  5. #5
    Avatar von Shooter2k
    Shooter2k Shooter2k ist offline Mitglied Brokat
    Registriert seit
    Mar 2002
    Ort
    Hamburg
    Beiträge
    381
    Ich habe gerade noch mal darüber nachgedacht und würde es doch lieber anfügen, statt zu ersetzen. Über ein Codebeispiel würde ich mich sehr freuen. Vielen Dank schon mal.

    gruß
     
    Wer mit dem Strom schwimmt, erreicht die Quelle nie.

  6. #6
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.516
    Ich weiß nicht genau, obs das hier ist:

    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    
    #include <string>
    #include <iostream>
    #include <stdio.h>
     
    std::string insertNumberInString(std::string numberString, int number, unsigned int position)
    {
        std::string newString("");
        for(size_t i = 0; i < numberString.length(); i++)
        {
            if(i==position-1)
                newString += number + 0x30;
     
            newString += numberString[i];
        }
     
        return newString;
    }
     
    int main(int argc, char **argv)
    {
        int zahl2 = 5;
        std::string code("215472560524632");
     
     
        std::cout << insertNumberInString(code, zahl2, 5) << std::endl;
     
        getchar();
    }
    Shooter2k bedankt sich. 
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  7. #7
    Avatar von Shooter2k
    Shooter2k Shooter2k ist offline Mitglied Brokat
    Registriert seit
    Mar 2002
    Ort
    Hamburg
    Beiträge
    381
    WOW *freu* genau das habe ich gesucht. Funktioniert leider nur bis newString += number + 0x30;. Der Pfeil wird bei der Ausgabe an der richtigen Stelle angezeigt, leider nicht die "number". Weisst du vielleicht woran das liegen könnte? Übergeben wird in der main()

    cout << insertNumberInString(hash1_key, 12, 4) << endl;


    Meine Ausgabe: 441<673866837773850276551263770
    Vielen vielen Dank, dass du dir die Zeit dafür genommen hast.
     
    Wer mit dem Strom schwimmt, erreicht die Quelle nie.

  8. #8
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.516
    Ah, ok, du übergibst jetzt zweistellige Werte. Darauf ist das Programm nicht vorbereitet. Dann muss man das etwas anders machen:

    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    #include <string>
    #include <iostream>
    #include <stdio.h>
    #include <stdlib.h>
     
    std::string insertNumberInString(std::string numberString, int number, unsigned int position)
    {
        std::string newString("");
        char szNumber[10];
        itoa(number, szNumber, 10);
        for(size_t i = 0; i < numberString.length(); i++)
        {
            if(i==position-1)
                newString += szNumber;
     
            newString += numberString[i];
        }
     
        return newString;
    }
     
    int main(int argc, char **argv)
    {
        int zahl2 = 12;
        std::string code("215472560524632");
     
     
        std::cout << insertNumberInString(code, zahl2, 5) << std::endl;
     
        getchar();
    }
    Shooter2k bedankt sich. 
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  9. #9
    Avatar von Shooter2k
    Shooter2k Shooter2k ist offline Mitglied Brokat
    Registriert seit
    Mar 2002
    Ort
    Hamburg
    Beiträge
    381
    Vielen Dank. Wünschte ich wäre selber drauf gekommen. Aber dazu fehlt mir leider noch die Erfahrung. Wünsche dir noch einen schönen Abend ich habe ihn jetzt jedenfalls

    gruß
     
    Wer mit dem Strom schwimmt, erreicht die Quelle nie.

  10. #10
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.516
    Ich muss zugeben, das was ich da hin gecodet habe, ist übelstes gehacke... C und C++-Code mischen ist ganz pfui. Es funktioniert zwar, schön ist es aber nicht. Ich muss auch noch viel über C++ lernen, daher gleite ich oft nach C ab
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 30.09.09, 23:10
  2. In String ab bestimmter stelle schreiben
    Von MScalli im Forum Java Grundlagen
    Antworten: 15
    Letzter Beitrag: 28.05.08, 08:35
  3. Char von bestimmter Stelle im String suchen
    Von sra im Forum Visual Basic 6.0
    Antworten: 4
    Letzter Beitrag: 16.01.08, 10:57
  4. int an bestimmter Stelle auslesen
    Von ProgFreak im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 28.08.06, 00:41
  5. Maus an bestimmter Stelle
    Von illetuffi im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 04.05.05, 12:57

Stichworte