WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   c++ Übungen mit ASCII - rechnen - ausgeben (http://www.wcm.at/forum/showthread.php?t=119524)

Bastet 22.12.2003 15:11

c++ Übungen mit ASCII - rechnen - ausgeben
 
Code:

//grossbuchstaben in kleinbuchstaben umwandeln

#include <iostream>

using namespace std;

void main()
{
        char c;

        cout << "Geben sie einen Grossbuchstaben ein: ";
        cin.get(c);

        c = c - 'A' + 'a';

        cout << c << endl;
}

ok, dass war ein leichtes beispiel, aber irgendwie hab ich probleme algorithmen dafür zu finden:

bsp. 1
eingabe von 2 zeichen, alle zeichen die in der ASCII tabelle dazwischen liegen, sollen ausgegeben werden.
(eingabe: b, f; ausgabe: cde)

bsp. 2
selbes beispiel aber mit zahlen.
eingabe: 5, 13; ausgabe: 6789101112)

selektionen und iterationen (ausser die for anweisung, ebenfalls array...) stehen zur verfügung

hab schon zur genüge gegoogelt, aber ich konnte zu diesem thema leider nichts finden.

merci

_m3 22.12.2003 15:53

ad 1) dann wuerde ich mir halt den ASCII Code der beiden Buchstaben holen und dann eine for-schleife mit den beiden Werten als Grenzwerte basteln. Damit laesst sich dann auch 2) loesen.

p.s.: Hab grad gesehen, dass "for" nicht erlaubt ist. Dann halt eine Iteration :)

Who-T 23.12.2003 01:32

Re: c++ Übungen mit ASCII - rechnen - ausgeben
 
Zitat:

Original geschrieben von Bastet
bsp. 1
eingabe von 2 zeichen, alle zeichen die in der ASCII tabelle dazwischen liegen, sollen ausgegeben werden.
(eingabe: b, f; ausgabe: cde)
Code:

void foo ()
{
  char a, b;
  char i = 0;

  cin.get(a);
  cin.get(b);
 
  i = a + 1;
  while (i < b)
  {
    cout << (char)i++;
  } 
}

Zitat:

bsp. 2
selbes beispiel aber mit zahlen.
eingabe: 5, 13; ausgabe: 6789101112)
das is etwas komplizierter, weil du ja die zahl, die mehrere stellen aufweisen kann in eine zahl umwandeln musst.
das geht am leichtesten mit atoi, falls du das verwenden darfst. wenn nicht musst du die zahl händisch umwandeln.
Code:

void foo ()
{
  char a[3];
  char b[3];

  // ich weiß den c++ code fürs einlesen von mehreren chars jetzt net
  // sicher, überprüf das mal
  cin >> a;
  cin >> b;
 
  int lower = atoi (a);
  int upper = atoi (b);
  int i = lower + 1;
 
  while (i < upper)
  {
    cout << i++;
  }
}

wie gesagt, wenn du atoi net verwenden darfst dann a[] und b[] durchlaufen und jeweils number += * 10^n wobei n für die pos. der ziffer steht.


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag