...
Altering the string returned by setlocale() or the structure returned by localeconv() results in undefined behavior. See also undefined behaviors 120 and 121 of Annex J. Furthermore, the C standard imposes Standard imposes no requirements on the contents of the string by setlocale(). Consequently, a program should make no assumptions as to the string's internal contents or structure.
...