この関数nl_langinfo(INT_CURR_SYMBOL)
は、次の形式の文字列定数へのポインターを返します。
$(THREE-LETTER-PSEUDOACRONYM) $(SIGN)$(SYMBOL)
したがって、私のロケール ( en_GB.UTF-8
) では、これは になります"GBP -£"
。最初の 3 文字だけが必要なので、3 番目の要素に nul 文字を割り当てるか、または ? を使用する以外に、これを行う別の方法はありstrncpy()
ますか?
strcpy(int_curr_symbol, nl_langinfo(INT_CURR_SYMBOL)); // "GBP -£"
int_curr_symbol[3] = '\0';
// or
strncpy(int_curr_symbol, nl_langinfo(INT_CURR_SYMBOL), 3)); // "GBP"
さらに、nl_langinfo(CRNCYSTR)
は記号と記号も返しますが、必要なのは記号だけです。"-£"
->"£"