UWP将字符串转换为整数
UWP Convert String to an Integer
问候语,
我一直在谷歌上查找所有内容,但就是找不到答案。
如何使用C++在通用Windows平台(UWP(中将字符串"5"转换为整数5?
我已经试过用(String^(来转换它,所以,我知道这毫无意义,但你永远不会知道UWP。
msdn文档没有描述任何关于类型转换的内容,我只是在任何地方都找不到它。我不想做类似String^=>wchar_t=>char->atoi的事情。有更好的方法吗?还是我必须做这个漫长的记忆过程?
编辑:这和你标记的不一样。。。你能在标记之前先读一下我的描述吗?您发送的链接是将std::string转换为整数,这很容易,但我需要知道如何将string^转换为int(int32(
Platform::String(在C++/CX中表示为String^
(提供String::Data成员,该成员向内部缓冲区返回const char16*
。然后,它可以与任何标准的C或C++字符串转换函数一起使用,如std::wcstol:
long ToLong( String^ str ) {
const wchar_t* begin = str->Data();
return std::wcstol( begin, nullptr, 10 );
}
或者,如果你想实现一些错误处理,并确保整个字符串被解释,你可以写:
long ToLong( String^ str ) {
const wchar_t* begin = str->Data();
const wchar_t* end = str->Data() + std::wcslen( str->Data() );
wchar_t* last_interpreted{ nullptr };
long l = std::wcstol( begin, &last_interpreted, 10 );
if ( last_interpreted != end ) {
throw ref new InvalidArgumentException();
}
return l;
}
请注意,没有分配额外的内存。转换功能对Platform::String
的存储序列进行操作。
如果你可以腾出一个潜在的临时内存分配,你可以使用std::stol,并免费获得正确的错误报告:
long ToLong( String^ str ) {
return std::stol( { str->Data(), str->Length() } );
}
相关文章:
- 努力将整数转换为链表。不知道我在这里做错了什么
- 如何在C++中将整数转换为其数字数组
- 如果整数与指针大小相同,则重新解释将整数转换为指针双射是否具有双射作用?
- 将最小值整数转换为无符号长整型
- 为什么我们不能将使用异或运算找到的整数转换为字符?
- 在C++中,将无符号整数转换为八进制表示,反之亦然的最佳方法是什么
- 将74位整数转换为以31为底的整数
- 独立于实现的浮点/整数转换
- 以最少的步骤将给定整数转换为另一个整数
- 浮点到整数转换出错(即使浮点数已经是整数)
- 了解双精度转换与整数转换中的整数与截断关系
- 禁止具有精度损失的整数转换
- 将任意整数转换为 void*
- 将 32 位大端有符号整数转换为有符号小端整数
- char a[0] 使用 itoa() 将整数转换为字符串的目的
- 使用函数时从整数转换为字符串
- 尝试从整数转换为字符串的月份
- 如何在C++中将整数转换为字节,以便 Unity 在通过 UDP 传输后能够理解它们
- 如何将 Q 格式的整数转换为浮点数(反之亦然)
- 如何避免字符串到整数转换情况下的无效参数异常