作者:胡萝卜咯198408 | 来源:互联网 | 2023-02-02 23:35
我是C++的新手,所以如果它是愚蠢的,请不要太苛刻.
我正在尝试将字符串分成两部分.我能够正确地使用substr分离第一部分,但出于某种原因,当我尝试分离第二部分时,它也会在分隔符之后获取所有内容.我查看它是否识别出我试图阻止它的位置(pos1)并且它是正确的位置,但它仍然需要一切事后.
for(u_int i = 0; i
输出:
John Doe: 20 30 40 <- How each line looks before it's separated
Jane Doe: 60 70 80
8 <- Location of delimiter
First: John <- first
Last: Doe: 20 <- last
8
First: Jane
Last: Doe: 60
小智..
6
第二个参数substr
是字符数,而不是最终索引.您需要将第二个呼叫更改为:
last = temp.substr(pos+1, pos1-pos-1);
顺便说一句,要严格,在第一次调用时substr
,你实际上想要取pos-1
字符,除非你想要结果字符串中的空格.
1> 小智..:
第二个参数substr
是字符数,而不是最终索引.您需要将第二个呼叫更改为:
last = temp.substr(pos+1, pos1-pos-1);
顺便说一句,要严格,在第一次调用时substr
,你实际上想要取pos-1
字符,除非你想要结果字符串中的空格.