Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » Vokale verdoppeln

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 ] > 2 < [ 3 ]
010
06.02.2007, 13:21 Uhr
Suba Esel



Noch mal verbessert: 73

Aber halt nur wegen Virtuals Idee...


EDIT: 72
--
Simon

Dieser Post wurde am 06.02.2007 um 13:30 Uhr von Suba Esel editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
06.02.2007, 14:20 Uhr
virtual
Sexiest Bit alive
(Operator)


Na dann zeig doch mal
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
06.02.2007, 14:44 Uhr
Suba Esel



Sind jetzt nur nur noch 71, ich hatte ein Leerzeichen zwischen for und der Klammer


C++:
for(int i=0;i<s.size();++i,strchr("aeiouAEIOU",s[i])?e+=s[i]:s)e+=s[i];


--
Simon
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
06.02.2007, 15:02 Uhr
virtual
Sexiest Bit alive
(Operator)


Jau, das ist sexy.

Da kann man aber noch immer ein Zeichen rausholen:

C++:
for(int i=-1;++i<s.size();strchr("aeiouAEIOU",s[i])?e+=s[i]:s)e+=s[i];


70.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
06.02.2007, 15:21 Uhr
Suba Esel



Menno

Wieso funktioniert eigentlich i++ statt ++i nicht?
--
Simon
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
06.02.2007, 15:36 Uhr
xXx
Devil


weil bei i++ erst der alte wert zurück kommt bevor die variable um eins erhöht wird ...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
06.02.2007, 16:03 Uhr
Lensflare




Zitat von virtual:

Deine Lösung ist nicht portabel: Niemand garantiert, daß ein std::string eine 0 am Ende des String speichert.


Hm, gut zu wissen. Ich bin halt davon ausgegengen, weil es heisst "zero terminated string"

Ist std::string eigentlich immer mit 8 bit pro Zeichen kodiert?
Wenn nicht, dann dürfte wohl s.size() bei anderen Kodierungen nicht die Anzahl an Zeichen ausgeben.
--
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
017
06.02.2007, 16:05 Uhr
Suba Esel



Der Unterschied zwischen ++i und i++ ist mir klar! Meine Frage war, warum das solche Auswirkungen hat. Das
C++:
++i<s.size()
ist ja im Prinzip nichts anderes als
C++:
i+=1;
i<size()
. Dementsprechend ist doch eigentlich
C++:
i++<s.size()
das selbe wie
C++:
i<s.size();
i+=1;
. Und wieso wirkt sich das ganze auf das s[i] aus?
--
Simon
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
06.02.2007, 16:25 Uhr
virtual
Sexiest Bit alive
(Operator)


Es wirkt sich nicht direkt auf s[ i ] aus, sondern vielmehr auf die Schleifendurchläufe:

C++:
for(int i=a; ++i<b; expr)


Bewirkt, daß expr für i = (a+1), (a+2), ..., (b-2), (b-1) durchlaufen wird. Dagegen bewirkt

C++:
for(int i=a; i++<b; expr)


daß expr für i = (a), (a+1), ..., (b-1), (b) durchlaufen wird.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 06.02.2007 um 16:26 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
06.02.2007, 16:34 Uhr
virtual
Sexiest Bit alive
(Operator)



Zitat von Lensflare:
Ist std::string eigentlich immer mit 8 bit pro Zeichen kodiert?

Nein. Exakt müsste es heißen: std::string arbeitet immer auf einem char, well es ein typedef von std::basic_string<char...> ist. Ein Char wird im C/C++ als die kleinste Adressierbare Einheit angesehen und synoy, mit Byte verwendet.
Ein Byte muß - aus verschiedenen Gründen - in C++ mindestens 7 Bit haben. Allerdings ist die Größe nach oben NICHT beschränkt.

Zitat von Lensflare:
Wenn nicht, dann dürfte wohl s.size() bei anderen Kodierungen nicht die Anzahl an Zeichen ausgeben.

Jain.

Ich habe den Standard lange nicht mehr in der Hand gehabt und daher nur wenig konkrete Erinnerungen daran. Meine Vermutung: size() gibt die tatsächliche Byte/Char Größe des Strings zurück, length mehr oder weniger seine logische Größe. Dies können vermutlich unterschiedliche Werte sein, wenn
1. der dem String zugrundeliegende Datentyp was anderes als ein char ist (also wenn man std::wstring verwendet oder so, für Unicode)
und/oder
2. man zwar eine char als Datentyp im String hat, die kodierung jedoch manchaml ein oder mehrere physicalische Bytes/Chars zu einem logischen Zeichen zusammenfasst (etwa UTF-8).

Ich bin mir aber wirklich nicht sicher, frag besser jemanden, der sich damit auskennt.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 < [ 3 ]     [ Rätselecke ]  


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: