【发布时间】:2011-10-20 09:16:43
【问题描述】:
我试图通过在 C++ WinAPI 中将每个字母的 int 值相加来将字符串转换为数字。所以在ASCII中; std::string "AA" 等于 130 (65+65)
字符串可以是 std::string 或 std::wstring。
为什么无论我输入什么字母,下面的函数总是返回零值?它不应该返回字母的 ASCII 或 Unicode 整数值吗?
printf("TEST a: %d \n", _tstoi(_T("a")));
printf("TEST A: %d \n", _tstoi(_T("A")));
printf("TEST b: %d \n", _tstoi(_T("b")));
我的 VC++ 应用程序当前使用 Unicode,并且前面的代码为每个字母打印出零。我记得听说 Unicode 与 ASCII 字符串非常不同,你能弄清楚除了 Unicode 有一个大约 30,000 长而 ASCII 是 256 长的字符库(我认为?)之外还有什么不同吗?
【问题讨论】:
-
Joel 的“每个软件开发人员绝对、肯定必须了解 Unicode 和字符集的绝对最低要求(没有任何借口!)”joelonsoftware.com/articles/Unicode.html
标签: c++ winapi unicode unicode-string