使用C,有沒有辦法找出LC_CTYPE是否設置?我正在重寫printf,而且根據區域設置是否設置,我的%lc需要以不同的方式工作。有沒有方法可以確定LC_CTYPE是否在C中設置?
1
A
回答
1
LC_CTYPE
是一個環境變量。您可以使用任何訪問環境變量的常規方法,這些方法因平臺而異。例如,POSIX的第三envp
參數main
:
int main(int argc, char **argv, char **envp);
或標準C89 getenv()
功能:
char *getenv(const char *name);
例如:
#include <stdlib.h>
char const *get_lc_ctype()
{
return getenv("LC_CTYPE");
}
要小心,不要修改由getenv(3)
返回的字符串,這是未定義的行爲。如果你想設置LC_CTYPE
,你應該使用(POSIX標準化,但不是C-標準化)setenv(3)
:
int set_lc_ctype(char const *new)
{
return setenv("LC_CTYPE", new, 1);
}
0
一個通用的方法是使用 '的setlocale()'。 從手冊頁:
如果語言環境是一個空字符串「」,即應根據 環境變量設置進行修改語言環境的每個部分。
因此,您可以通過
#include <locale.h>
// ...
char* lc_type= setlocale(LC_CTYPE, "");
得到LC_TYPE
相關問題
- 1. 有沒有辦法在運行時確定對象是否可以在C++中執行方法?
- 2. ejabberd:有沒有一種方法可以確定用戶是否是管理員?
- 3. Androguard有沒有辦法確定某個方法是否可以實際調用?
- 4. 有沒有一種方法,以確定是否一個方法是要在C#中被內聯
- 5. 有什麼方法可以確定iPhone是否在漫遊?
- 6. 有沒有辦法確定振動是否在設置中打開或關閉?
- 7. 有沒有方法可以測試VB6中是否有Function/Sub?
- 8. 有什麼方法可以確定它是否是測試(.NET)?
- 9. 有沒有方法可以測試輸入是否是C++中的數字?
- 10. 在Eclipse中有沒有一種方法可以確定什麼是CPU時間?
- 11. 有什麼方法可以檢查警報是否已設置?
- 12. 有沒有在maven中確保設置屬性的方法
- 13. 有沒有在jQuery中確定一個元素是否有類的方法?
- 14. 是否可以確定實例方法是否在原型方法中調用?
- 15. 有沒有確定POST是否成功的REST式方法?
- 16. 有沒有一種方法來確定是否刪除用戶?
- 17. 是否可以在沒有cookie的情況下設置nginx?
- 18. 有沒有更好的方法來確定一個字符串是否可以是try/catch以外的整數?
- 19. Java中有沒有一種方法可以確定路徑是否有效,而不嘗試創建文件?
- 20. 在ASP.NET Core中,有沒有什麼方法可以從Program.cs設置中間件?
- 21. 有沒有一種方法可以在運行時指定方法c#
- 22. 是否可以在沒有onclick的線程中放置一個方法?
- 23. 有沒有一種方法可以確定是否在jython shell /腳本中使用conntype = NONE調用了wsadmin?
- 24. 有沒有一種方法可以確定客戶端是否在.NET中接收到HTTP響應?
- 25. 有沒有一種方法可以確定angular.js中是否存在url查詢參數?
- 26. 是否有可能以編程方式設置Qtip的位置?
- 27. 是否有可能以編程方式更新配置設置?
- 28. 有沒有一種方法可以在模擬中配置Gatling?
- 29. 有沒有方法可以確定_What_正在DomainContext中被更改?
- 30. 有沒有一種方法可以創建可以是JSON結構表示的自定義設置?