1

この関数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)は記号と記号も返しますが、必要なのは記号だけです。"-£"->"£"

4

1 に答える 1