Eingabe "zerlegen" und einzelne zeichen in array speichern



  • Hallo,

    Ich versuche gerade vergeblich eine Eingabe "auseinander" zu nehmen und jedes Zeichen einzeln in einem Array zu speichern

    char zahl[10];
        cout << "Geben Sie eine Schlüsselnummer ein:" << endl;
        cin.getline(eingabe,10);
    
        ptr = eingabe;
    
      while(ptr<eingabe+strlen(eingabe))
        { 
          if(ptr=="0")
          {zahl[n]='0';}
          else if(ptr=="1")
          {zahl[n]= '1';}
          else if(ptr=="2")
          {zahl[n]= '2';}
          else if(ptr=="3")
          {zahl[n]= 'A';}
          else if(ptr=="4")
          {zahl[n]= 'A';}
          else if(ptr=="5")
          {zahl[n]= '5';}
          else if(ptr=="6")
          {zahl[n]= '9';}
          else if(ptr=="7")
          {zahl[n]= 'A';}
          else if(ptr=="8")
          {zahl[n]= '8';}
          else if(ptr=="9")
          {zahl[n]= '6';}
    
          *ptr++;
          n++;  }
    
    }
    

    Das funktioniert allerdings nicht so. Der Fehler liegt vermutlich an else if(ptr=="7")
    {zahl[n]= 'A';}
    also an "" oder ''. Ich weiß nicht welche zeichen ich da verwenden muss. Immer wenn der Zeiger auf z.b.: 5 ist soll eine 5 in das array gespeichert werden. Die Zahlenfolge 0457785 soll dann quasi zu 0A5AA85 werden.

    Das klappt allerdings nicht.



  • Huhu,

    "1" <-- 2 Bytes = '1' + '\0' ;
    

    Dein ptr kann aber nur auf ein Zeichen ( 1 Byte ) zeigen.

    Sprich:

    Deine Abfragen müssten so lauten:

    if ( *ptr == '1' )
          //....
    

  • Mod

    Ich empfehle einen anderen Ansatz: Lies einen std::string ein und benutz dann replace().



  • Danke

    THX 👍 👍 👍 👍 👍


Anmelden zum Antworten