我的类有两个无符号的int成员变量,如
unsigned int lowByte;
unsigned int highByte;
我需要将字母数字字符串值Ex:“1234 ##”或“5635 $$”存储到上面的两个或任何一个变量中......! &安培;我应该能够从unsigned int重新构造字符串值..!
请帮忙吗?
答案 0 :(得分:2)
发布的代码生成相同的子字符串:value.substr(0,pos1)。请注意,std::string::substr()不会修改对象,而是返回一个新的std :: string。
示例:
#include <iostream>
#include <string>
int main ()
{
std::string value ="12,fooBar";
unsigned int myNum;
std::string myStr;
const size_t pos1 = value.find(',');
if (std::string::npos != pos1)
{
myNum = atoi(value.substr(0, pos1).c_str());
myStr = value.substr(pos1 + 1);
}
std::cout << myNum << " and "
<< myStr << std::endl;
return 0;
}
输出:
12 and fooBar
如果unsigned int是唯一需要的部分,那么以下内容将起作用:
unsigned int myNum = atoi(value.c_str());
asoi()将停在第一个非数字字符(不包括可选的前导 - 或+),在本例中为。