Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » C und Sonderzeichen

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
19.05.2005, 10:58 Uhr
FunnyDingo



Hallöchen zusammen,

ich bin dabei C zu lernen, habe aber ein Problem mit den Sonderzeichen. Aus anderen Programmiersprachen kenne ich den Variablentyp "String" den es in C (zumindest in C selbst) ja nicht gibt. Ein char-Array kann aber keine Sonderzeichen enthalten.
C++:
{
  char zeichenkette[] = "äöü€€€öäü";
  printf("Ausgabe: '%s'\n", zeichenkette);
}

Die Ausgabe ist dann: "Ausgabe: äöüäöü", die €€€ entfallen einfach. Leider habe ich bisher keine Website gefunden, die mir den Umgang mit dieser Problematik erläutert. Irgendwo habe ich gelesen mal soll wchar-t benutzen, aber wenn ich dann
C++:
{
  wchar_t zeichenkette[] = L"äöü€€€äöü";
  printf("Ausgabe: '%s'\n", zeichenkette);
}

mache, bekomme ich nur "Ausgabe: ä". Außerdem kann ich wchar_t-Zeichenketten ja nicht an Funktionen à la strcpy, strcmp, etc übergeben, da die ja ein char-Typ erwarten. Mich irritert diese Problematik ziemlich.

Vielleicht ha ja jemand eine gute Page auf der das erläutert wird!? Bin auf jeden Fall über jeden Tipp dankbar.
--
"Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral." (John James Osborne)

Meine Website: http://www.funnydingo.de

Dieser Post wurde am 19.05.2005 um 10:58 Uhr von FunnyDingo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
19.05.2005, 23:29 Uhr
virtual
Sexiest Bit alive
(Operator)


IMHO ist das ganze Konzept mit Unicode (das ist das, worauf die Verwendung von wchar_t hinausläuft) in C++ nicht durchdacht bzw. ausgereift. Schade eigentlich, denn das bedeutet, daß man ne Menge Klimmzüge machen muß, um es hinzukriegen.

Daß das Eurozeichen nicht ankommt liegt im Prinzip daran, daß Du die Falsche Codepage installiert hast, ich glaube bei Microsoft Betriebssystwemen gibt es einen entsprechenden Patch, bei Linux solltest Du einfach auf eine neuere Distri umstellen, die unterstützen dann per Default UTF-8 und damit auch auf bequeme weise jeden erdenklichen Zeichensatz.
--
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
002
20.05.2005, 16:13 Uhr
RedEagle



Bei der Windows-konsole reicht es, wenn du den ASCII-code eingibts:


C++:
//...
printf("Das ist ein Sonderzeichen: %c", (char)132);
//...


Such einfach eine ASCII_tabelle im Interet, da findes du auch die codes für die anderen Zueichen...

Aber ein €-zeichen gibts nicht...
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
20.05.2005, 16:59 Uhr
FunnyDingo



Zum Hintergrund:

Zum lernen schreibe ich einen mini-Webserver. Dieser soll im ersten Schritt, nur die eingegebene URL wieder ausgeben. Kann ich in einem solchen Fall, die mit read() eingelesene Zeichenkette einfach in ein char-Array schreiben und dieses 1:1 via send() wieder ausgeben?

Außerdem kommt erscherend hinzu, dass Mozilla/Firefox die URL nur URLencoded senden, ich muss diese also erst noch decoden. Kann ich in diesem Fall ebenfalls bei einem char-Array bleiben?
--
"Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral." (John James Osborne)

Meine Website: http://www.funnydingo.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
20.05.2005, 17:42 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ja das sollte kein problem sein, wenn der webserver html-seiten senden soll dann kannst du sowieso die sonderzeichen als entities-kodieren (also z.b &euro; bzw &#....
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
20.05.2005, 23:19 Uhr
FunnyDingo



Das stimmt wohl, aber trotzdem muss ich URLencoded Strings ja decodieren. Denn wenn ich eine "ölapalöma.html" habe und bekomme im Header ein

GET /%F6lapal%F6ma.html HTTP/1.*

wird mein Linux die "%F6lapal%F6ma.html" wohl kaum finden.
--
"Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral." (John James Osborne)

Meine Website: http://www.funnydingo.de
 
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: