String nach ASCII konvertieren



  • akari schrieb:

    zeichen = char(zeichen +2);

    Ich frag mal in die Runde, warum "+2"? Geht was beim konvertieren nach Integer verloren? Wenn ja was? Reine Neugier. 😉



  • AnsiString Code(AnsiString keyword, AnsiString text)
    {
      int i, pos, key;
      AnsiString dummy;
      pos = 0;
      for (i=0; i<text.Length(); i++)
    {
    	if (pos == keyword.Length())
    	  {
    	  pos = 0;
    	  }
    	else
    	  {
    	  pos++;
    	  }
      key = StrToInt(text[i]) + StrToInt(keyword[pos]);
      dummy = dammy + char(key); // Hier vielleicht das char(key+2) von akari verwenden?
      }
      return dummy;
    }
    

    Merke

    Pascal = ist in C++ ==
    und := ist = in C++

    Der for fehlte auch die Bedingung i<text.Length()



  • Hallo

    Integerman schrieb:

    akari schrieb:

    zeichen = char(zeichen +2);

    Ich frag mal in die Runde, warum "+2"? Geht was beim konvertieren nach Integer verloren? Wenn ja was? Reine Neugier. 😉

    Nein es geht natürlich nichts verloren. Das +2 ergibt sich aus der Fragestellung von Morgleh.

    bis bald
    akari



  • Hallo,
    vielen Dank! Das mit == und i< muss ich wohl vergessen haben - leider kommt immernoch eine zugrffsverweigerung, gehe ich auf anhalten wird mir die Funktion von int() in strings.h geoeffnet - muss ich noch etwas anderes einbinden oder woran könnte der fehler noch liegen ?



  • Hallo, danke erst mal, leider immer noch nicht alles perfekt - das StrToInt bringt mir nichts, dann müsste ja Edit1.Text eine Zahl beinhalten - ich möchte die Ordinalzahl (in Delphi ord()) ?



  • AnsiString Code(const AnsiString& keyword, AnsiString text)
    {
      for (int i=1;i<=text.Length();i++)text[i]+=keyword[(i-1)%keyword.Length()+1];
      return text;
    }
    

    Ist das, was du erreichen wolltest?
    Du brauchst übrigens kein ord() oder dergleichen, text[i] gibt dir ein char, mit dem du auch rechnen kannst.

    Edit: deine Zugriffsverletzung könnte daher kommen, dass die Indexierung bei AnsiStrings bei 1 beginnt, du aber versuchst auf text[0] zuzugreifen.



  • Vielen, Vielen Dank an Nanyuki. Bie Pascal bzw. Delphi geht der Index immer bei 0 los - Problem geklärt.

    Ist wirklich en tolles Forum!!!



  • Bei VCL(C++Builder) geht im Allgemeinen der Index auch bei 0 los, nur bei AnsiString nicht! 😉



  • Ich habe die folgende Aufgabestellung : Entwickeln Sie ein Programm in C++, das vier beliebige Zeichen von der Tastatur einliest und anschließend die Dezimalwerte des ASCII- Codes der vier Zeichen auf dem Bildschirm ausgibt.

    Beispiel: a=97, 5=53, %=37, ?=63



  • danke im voraus



  • und was genau ist nun das Problem?

    Falls du möchtest, daß dir das jemand programmiert: frag mal im Projekteforum, gegen einen entsprechenden Obulus wird sich da bestimmt jemand finden.

    Alternativ und kostengünstiger ist natürlich Eigeninitiative.



  • Hallo Jungens,

    wießt ihr wie man diese ASCIII Codes andersrum schreiben kann?

    z.b.

    #include<stdio.h>
    #include<string.h>
    
    int main()
    {
    char Zeile [81];
    int Zahl;
    
    printf("Bitte geben sie einen Satz ein: ");
    gets (Zeile);
    
    printf("\n");
    Zahl = strlen(Zeile);
    
    for (int i = 0; i < strlen(Zeile); i++)
    {
     printf("%i ",Zeile[i]*Zahl);
    }
    printf("\n\n");
    
    return 0;
    }
    


  • Hallo,

    Es wäre wohl vernünftig dafür einen neuen Thread aufzumachen. Deinen Code nach zu urteilen auch eher im ANSI-C Forum. Dein Code ist kein C++.
    Willst du also C oder C++?


Anmelden zum Antworten