Klein zu Groß Prog. umschreiben



  • Hallo

    Da LoSt schon VCL-AnsiStrings benutzt würde ich ganz klar die von mir genannte VCL-Funktion bevorzugen.

    bis bald
    akari



  • danke aber kann man nciht auch mit ner if schleife oder so das gaz simple machen? Also ohne neuen sachen^^ die ich nicht versteh...
    also in meiner art wie das obrige... wär cool wenn das jmd wüsste
    thx mfg



  • LoSt schrieb:

    danke aber kann man nciht auch mit ner if schleife oder so das gaz simple machen?

    http://www.if-schleife.de/

    LoSt schrieb:

    Also ohne neuen sachen^^ die ich nicht versteh...

    Warum willst du das unbedingt selbst machen? Nimm doch die Gelegenheit wahr und lerne etwas!
    Ansonsten findest du hier eine ASCII-Tabelle, der du die numerischen Entsprechungen der Zeichen entnehmen kannst, womit das einfach von Hand zu lösen sein dürfte.



  • LoSt schrieb:

    danke aber kann man nciht auch mit ner if schleife oder so das gaz simple machen? Also ohne neuen sachen^^ die ich nicht versteh...
    also in meiner art wie das obrige... wär cool wenn das jmd wüsste
    thx mfg

    Wenn du meinen Rat befolgt hättest und in der Builder-Hilfe geschaut hättest, hättest du eine ganz einfache Funktion samt Beispiel gefunden.

    bis bald
    akari



  • sry, ich DARF aber keine neuen Funktionen einbauen, auch wenn es wahrscheinlich schneller und einfacher gehen würde.
    also mit ner schleife DENKE ich mal, aber ICH kann es nich^^ deshalb frage ich ja...

    ich denke ja so irgentwie aber das geht ja net

    {
     {
    String Wort=Edit3->Text;
    int i;
    if (Key==13)
       {
     for(i=1;i<=Wort.Length();i++)
       {
    if (Wort[i]<91)&&(Wort[i]>64)
          {
      Wort[i]=Wort[i]-32;
           }
      Label5->Visible=true;
      Label5->Caption="Das Wort lautet nun: "+Wort;
        }
        }
     }
    }
    


  • versuchs doch mal mit der ASCII-Tabelle von audacia

    Wenn du schon einen Großbuchstaben hast kannst du ihn lassen (einfaches if,

    if(Wort[i] > 64 && Wort[i] < 91)
        ich_habe_einen_großbuchstaben();
    else if(Wort[i] > 96 && Wort[i] < 123)
        ich_habe_einen_kleinbuchstaben();
    else
        das_ist_kein_buchstabe();
    

    )

    Wenn du keine Builder / STL - funktionen verwenden darfst dann sag das doch gleich



  • OK danke!!!

    void __fastcall TForm1::Edit3KeyDown(TObject *Sender, WORD &Key,
          TShiftState Shift)
    {
     {
    String Wort=Edit3->Text;
    int i;
    if (Key==13)
        {
        for(i=1;i<=Wort.Length();i++)
     {
    if (Wort[i]>64 && Wort[i]<91)
           {
           Wort[i]=Wort[i]+32;
           }
           else (Wort[i]>96 && Wort[i]<123);
             {
            Wort[i]=Wort[i]-32;
             }
      Label5->Visible=true;
      Label5->Caption="Das Wort lautet nun: "+Wort;
     }
        }
     }
    }
    

    So hab ichs jetzt und es funzt auch!
    Habs ihr sonst noch irgentwelche verbesserungsvorschläge?

    MFG



  • ähm du hast hinter dem esle das if vergessen?



  • So ists besser lesbar 😉

    void __fastcall TForm1::Edit3KeyDown(TObject *Sender, WORD &Key,
          TShiftState Shift)
    {
    String Wort=Edit3->Text;
    int i;
    if (Key==13)
    {
        for(i=1;i<=Wort.Length();i++)
        {
            if (Wort[i]>='A' && Wort[i]<='Z')
            {
                Wort[i]=Wort[i]+32;          // Soll aus Grossbuchstaben kleine gemacht werden?
            }
            else if(Wort[i]>='a' && Wort[i]<='z');
            {
                Wort[i]=Wort[i]-32;
            }
            Label5->Visible=true;
            Label5->Caption="Das Wort lautet nun: "+Wort;
        }
    }
    }
    


  • Ne die Großbuchstaben sollen GROSS bleiben, und es geht ja auch. also alles soll dann groß sein.

    wieso "else if"? else reicht eh auch ....



  • wenn du else ohne if verwendest darft du aber keine bedingeungen in der Klammer angeben ...
    Wegen dem Strichpukt gehts Zwar ist aber absoluter nonsense.
    Auserdem ist das Verhalten bei Zeichen != Buchstabe nicht sonderli8ch sinnvoll



  • aso dann kann ich aber auch das ganze else wegtun und nur das if dastehen lassen oder?

    {
     {
    String Wort=Edit3->Text;
    int i;
    if (Key==13)
        {
        for(i=1;i<=Wort.Length();i++)
     {
    if (Wort[i]>64 && Wort[i]<91)
           {
           Wort[i]=Wort[i]+32;
           }
           if (Wort[i]>96 && Wort[i]<123);
             {
            Wort[i]=Wort[i]-32;
             }
      Label5->Visible=true;
      Label5->Caption="Das Wort lautet nun: "+Wort;
     }
        }
     }
    }
    

Anmelden zum Antworten