该函数不返回任何内容或返回空字符串。我正在尝试删除字符串中-e
文本之后的下一个序列之前的所有内容。例如,test -e test/file/path
应该返回test/file/path
,且-e
后没有空格。但是,当函数不返回任何内容或返回空字符串时。我的功能找不到任何问题,请帮忙!
#include <iostream>
using namespace std;
string fileparse(string str) {
int i;
for (i = 0; i < str.size(); i++)
if (str[i] == '-')
i += 2; //to account for the space after 'e'
str.erase(str.begin(), str.begin()+i);
return str;
}
int main()
{
string str = "test -e test/file/path";
string vars = fileparse(str);
cout << vars << endl; //blank
return 0;
}
答案 0 :(得分:0)
var fiveSeconds = new Date().getTime() + 5000;
$('#clock').countdown(fiveSeconds, {elapse: true})
.on('update.countdown', function(event) {
var $this = $(this);
if (event.elapsed) {
$this.html(event.strftime('After end: <span>%H:%M:%S</span>'));
} else {
$this.html(event.strftime('To end: <span>%H:%M:%S</span>'));
}
});
在遇到if (str[i] == '-') {
i += 3;
break;
}
符号时停止。摆脱'-'
增加i
,摆脱字母1
和空格e
。
答案 1 :(得分:0)
您必须退出for循环,因为您要让它结束并且'i'一直在递增。然后,当您引用“ i”时,它将删除整个字符串。