为什么我的字符串函数不返回任何内容?

时间:2019-05-27 00:44:08

标签: c++ string function parsing

该函数不返回任何内容或返回空字符串。我正在尝试删除字符串中-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;
}

2 个答案:

答案 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”时,它将删除整个字符串。