string find 的问题
- C/C++ code
#include<string>#include<iostream>#include<stdio.h>#include <stdlib.h>#include <sstream>#include <malloc.h>#include <vector>#include <fstream>#include <map>using namespace std; string cpcpair = "( 1481414,170008711) ------------- <0.047619000> --------------- ( 284777, 4398)"; string::size_type pos1 = cpcpair.find_first_of(','); string::size_type pos2 = cpcpair.find_first_of(')'); string tmp_cpcplanid = cpcpair.substr(pos1+1,pos2-1); cout<<tmp_cpcplanid<<endl;目的是输出170008711
但问什么输出的是170008711) ------- 呢,有8的偏移
[解决办法]
string tmp_cpcplanid = cpcpair.substr(pos1+1,pos2-(pos1+1));
string::substr(起始位置,截取长度);
[解决办法]
substr的第二个参数要注意,是截取字符的长度