Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Eingabeumlenkung aus ae wird ä

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
05.12.2006, 21:25 Uhr
~UGen
Gast


Hey Leutz,

ich muss ein programm schreiben, welches alle ae's oe's etc in ä's und ö's umformt ... dat problem dabei ist, es soll ohne string geschehen

ich habs soweit scho gemacht


C++:
int main( void )
{
  int a;
  
  printf ("Satz eingeben:\n");
  
  while ((a = getchar()) != EOF)
  {
        
        if ( a = 'a')
           {a = '\xE4';}
          
        putchar(a);
        
  }
  
  return 0;
}




jetzt ändert er alle a's in dat entsprechende sonderzeichen um, dies will ich jedoch nicht ich will dat jedes ae umgeformt wird .... jedoch komm ich einfach net weiter ....


würde mich freunen wenn mir jemand helfen würde

mfg

ugen

mod edit: BENUTZE CPP TAGS SELBER

Dieser Post wurde am 05.12.2006 um 23:05 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
05.12.2006, 21:53 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Mit folgendem Algo müsstest du das leicht lösen können

1) Schreib den Satz in ein chararray
2) halte ein zweites chararray bereit (geht auch ohne ist aber einfacher)
3) gehe in einer schleife alle buchstaben durch. Handelt es sich um kein a,o oder u dann kopiere den buchstaben in das zweite array, sonst check ob der nachfolgende buchstabe ein e. Wenn nicht weiter kopieren, wenn ja nur ein sonderzeichen schreiben und weiter gehts (aufpassen musst du noch ob es überhaupt noch einen folgebuchstaben gibt falls du nach nem e checkst damit dir der speicher nicht um die ohren fliegt...)
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
05.12.2006, 22:05 Uhr
~UGen
Gast


jaja dat problem damit ist dat ich auch kein arrays verwenden darf ... ich hab angefangen damit ... doch dann meinte der prof benutzt nur sachen die ihr in der vorlesung hattet und arrays und strings hatten wir noch net ... dat is ja dat problem
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
05.12.2006, 22:11 Uhr
J-jayz-Z
Perl Crack ala Carte
(Operator)


Na ja, so in der Art könnte das aussehen:

C++:
while((char b = getchar()) != EOF)
{
    if(strcmp(b, "a") == 0)
    {
        a = '\xE4';
    }
    else
    {
        a = b;
    }
    putchar(a);
}

--
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="66756e2d736f66742e6465"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
05.12.2006, 22:33 Uhr
~UGen
Gast


mmmh irgendwie kann ich es net compilieren aber mal abgesehen davon ist strcmp net verbunden mit strings ?! oder seh ich das falsch ...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
05.12.2006, 22:37 Uhr
Lensflare




C++:
  char a1;
  
  while ((a1 = getchar()) != EOF)
  {
    //für ä
    if ( a1 == 'a')
    {
      char a2;
      
      if((a2 = getchar()) != EOF)
      {
        if(a2 == 'e')
        {
          putchar('\xE4'); //falls das ä ist
        }
        else
        {
          putchar('a');
          putchar(a2);
        }
      }
      else
      {
        putchar(a1);
      }
    }
    
    //für ö
    else if( a1 == 'o' )
    {
      char a2;
      
      if((a2 = getchar()) != EOF)
      {
        if(a2 == 'e')
        {
          putchar('?'); //hier kommt das ö rein
        }
        else
        {
          putchar('o');
          putchar(a2);
        }
      }
      else
      {
        putchar(a1);
      }
    }
    
    //für ü
    else if( a1 == 'u' )
    {
      char a2;
      
      if((a2 = getchar()) != EOF)
      {
        if(a2 == 'e')
        {
          putchar('?'); //hier kommt das ü rein
        }
        else
        {
          putchar('u');
          putchar(a2);
        }
      }
      else
      {
        putchar(a1);
      }
    }
    
    else
    {
      putchar(a1);
    }
  }




Die eingegebene Zeile wird wieder mit umgewandeltem ae oe und ue ausgegeben.
Das funktioniert jedoch nicht, wenn nach a o oder u ein ae oe oder ue steht.
Naja es gibt ja fast keine Worte die ein umlaut nach einem Vokal haben
--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
05.12.2006, 22:53 Uhr
~UGen
Gast


vielen vielen dank ... du warst mir eine grosse hilfe !
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
06.12.2006, 12:25 Uhr
0xdeadbeef
Gott
(Operator)



C++:
#include <stdio.h>

char map_umlaut(char c) {
  switch(c) {
  case 'a': return 'ä';
  case 'o': return 'ö';
  case 'u': return 'ü';
  }

  return c;
}

int main(void) {
  char c, d;

  while((c = getchar()) != EOF) {
    switch(c) {
    case 'a':
    case 'o':
    case 'u':
      d = getchar();
      if(d == 'e') {
        putchar(map_umlaut(c));
      } else {
        putchar(c);
        putchar(d);
      }

      break;
    default:
      putchar(c);
      break;
    }
  }

  return 0;
}


Da zweimal den selben switch zu benutzen ist evtl. etwas redundant, aber ich war grad zu faul, mir da was besseres auszudenken.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 06.12.2006 um 12:25 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
06.12.2006, 13:36 Uhr
Pler
Einer von Vielen
(Operator)


Denk aber dran, dass es diese Kombinationen auch vorkommen, ohne dass ein ä usw umschrieben sein muss!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
06.12.2006, 15:05 Uhr
0xdeadbeef
Gott
(Operator)


Pötisch ausgedrückt.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: