tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
1584
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von schiieech
    schiieech schiieech ist offline Mitglied Bronze
    Registriert seit
    May 2002
    Ort
    saXen
    Beiträge
    49
    Hallo!

    Ich hab mal ein kurzes Anliegen in c++:
    Ich habe einen String mit variabler Länge, welcher nur aus Zahlen besteht. Ich möchte jetzt gern in einer Schleife jede einzelne Stelle des Strings auswerten, in dem ich die erste Stelle mit 3 multipliziere, die zweite Stelle mit 1, die dritte Stelle wieder mit 3, die vierte wieder mit 1 und immer so abwechselnd weiter.

    Wie kann ich das am besten bewerkstelligen? Vielleicht hat jemand ein kurzes Code-Beispiel für mich?

    Würde mich sehr über Hilfe freuen!

    Danke,
    schiieech
     

  2. #2
    Thomas Kuse Thomas Kuse ist offline Mitglied Rubin
    Registriert seit
    Aug 2001
    Beiträge
    1.411
    Na? Mal wieder die Hausaufgaben nicht gemacht?
    Hier nur schnell in C umrissen:

    PHP-Code:
    charcString;
    charptr;
    const 
    charletters="132643079";
    int size=strlen(letters)+1;
    int stelle=0;

    cString=(char *)realloc(cString,sizeof(char)*size));

    strcpy(cString,letters);

    ptr=cString;
    //multiplizieren
    do{
       if((
    stelle++) % 2)==0)
         if(*
    ptr<=3)//ziffern groeßer 3 koennen nicht mit 3 multipliziert werden
           
    *ptr=(*ptr) * 3;
    }while (*(++
    ptr)!=EOL); 
     

  3. #3
    Avatar von Mr.Undertaker
    Mr.Undertaker Mr.Undertaker ist offline Mitglied Gold
    Registriert seit
    Dec 2001
    Ort
    Radolfzell am Bodensee
    Beiträge
    181
    So in C++, erklärt sich von alleine, oder (siehe oben)?
    Achja die 48 vielleicht nicht. Das liegt daran, dass ich einfach den int-Wert
    von einem char einlese und da die 0 nunmall den wert 48 ASCII hat,
    muss ich 48 dekrementieren bzw inkrementieren.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    std::string strTest="1234567890";
     
    for(int i=0;i<(int)strTest.length();i++)
    {
       int iTmp = strTest[i]-48;
       if (((i % 2)==0) && (iTmp<=3)) 
       {
            iTmp*=3;
           strTest[i]=iTmp+48;
       }
    }
    Geändert von Mr.Undertaker (10.02.04 um 00:28 Uhr)
     
    Signatur hat Urlaub.

  4. #4
    Registriert seit
    Jul 2003
    Ort
    Duisburg (NRW)
    Beiträge
    1.788
    Wegen der 48:
    Möglich wäre auch
    Code :
    1
    
    int iTmp = strTest[i]-'0';
    Führt aber in beiden Versionen zu einer Warnung wg. Typumwandlung.
     
    Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."

  5. #5
    MorningStar MorningStar ist offline Grünschnabel
    Registriert seit
    Oct 2003
    Beiträge
    4
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    [COLOR=blue]#include[/COLOR] <iostream>
    [COLOR=blue]#include[/COLOR] <string>
     
    [COLOR=blue]using namespace[/COLOR] std;
     
    [COLOR=blue]int[/COLOR] main()
    {   
        string sDig = "123144325435";
        [COLOR=blue]const int[/COLOR] iMul[2] = { 3, 1 };
     
        [COLOR=blue]for[/COLOR]( [COLOR=blue]int[/COLOR] i = 0; i < sDig.length(); i++ )    
            cout << ( sDig.at( i ) - 48 ) * iMul[i%2] << endl;
        
        [COLOR=blue]return[/COLOR] 0;
    }
     

Ähnliche Themen

  1. DB auf Inhalt prüfen?
    Von flandersX im Forum PHP
    Antworten: 5
    Letzter Beitrag: 09.08.09, 18:07
  2. ZEichen auf Inhalt prüfen
    Von notebook20000 im Forum PHP
    Antworten: 3
    Letzter Beitrag: 24.11.06, 13:39
  3. Antworten: 5
    Letzter Beitrag: 08.03.06, 01:44
  4. Prüfen, ob String einen anderen String enthält
    Von kleinevroni im Forum Java
    Antworten: 4
    Letzter Beitrag: 02.11.05, 12:35
  5. Array auf Inhalt prüfen
    Von Benzol im Forum .NET Archiv
    Antworten: 4
    Letzter Beitrag: 12.10.04, 15:58