【发布时间】:2013-07-14 19:49:57
【问题描述】:
我想将一个字符串转换为 4 个整数。
bignum::bignum(const std::string& s){
std::string tmp;
const unsigned int s_size = sizeof(s)/sizeof(char);
const unsigned int max_size = 4;
const unsigned int parts = s_size/max_size;
unsigned int x = 3;
for(int i = s_size;i>0;i-=4){
tmp = s.substr(s_size-max_size, max_size);
std::cout << num[x] << std::endl;
std::istringstream (tmp) >> num[x--];
}
}
num 是一个向量,int 类型。
我猜问题是因为 substr 超出范围,但不知何故我无法让它工作。
【问题讨论】:
-
sizeof(s) 将为您提供字符串对象的大小,而不是字符串中的字符数。为此,您必须调用 s.size() (或 s.length())
-
我知道,但我想处理字符串中的每 4 个字节。这就是为什么我把它切成4个字节。也许我错了。顺便说一句,使用 .lenght 我得到了同样的错误。
-
This 解释了我的意思。
-
如果我们有一个您期望的输入类型的示例,也会有所帮助。
-
我认为您希望在
substr通话中使用i而不是s_size,对吧?
标签: c++