title image


Smiley Re: wer kann helfen?
richtig, das ist auch schlecht.

Die if-Abfrage aus dem 1.Posting war auch richtig, also:

if(!(lang=getenv("LANG")))

{

lang= strdup(LANGSTRING);

}

Nur hab ich nicht verstanden, warum er bei der Gebiet-Ausgabe @euro rangehängt hat.

Die Antwort ist ganz einfach. Bei mir ist die LANG- Variable nicht auf "de_DE.ISO8859-1@euro" gesetzt sondern auf "de_DE@euro".

Das heisst, dass ich bei der Zeile:

sprache_gebiet=strtok_r(lang, PUNKT, &last);

natürlich nicht wie gewollt den Zeichensatz extrahiere und so bleibt auch das @euro an Ort und Stelle.



Hier der vollständige quellcode wie er für jede Lang-Variation funktioniert:



#include

#include

#include

#include



#define USTRICH "_"

#define PUNKT "."

#define AT "@"

#define LANGSTRING "de_DE.ISO8859-1@euro"



int main(int argc, char *argv[])

{

char *lang;

char *sprache_gebiet_zusatz;

char *zusatz;

char *sprache_gebiet;

char *zeichensatz;

char *sprache;

char *gebiet;



if(!(lang=getenv("LANG")))

{

lang= strdup(LANGSTRING);

}







sprache_gebiet_zusatz=strtok(lang, AT);

zusatz=strtok(NULL,PUNKT);

sprache_gebiet=strtok(sprache_gebiet_zusatz,PUNKT);

zeichensatz=strtok(NULL,PUNKT);

sprache=strtok(sprache_gebiet,USTRICH);

gebiet=strtok(NULL,PUNKT);





if(sprache) printf("Sprache : %s\n", sprache);

if(gebiet) printf("Gebiet : %s\n", gebiet);

if(zeichensatz) printf("Zeichensatz : %s\n", zeichensatz);

if(zusatz) printf("Zusatz : %s\n", zusatz);



}







geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: