首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的字符串函数不返回任何东西?

为什么我的字符串函数不返回任何东西?
EN

Stack Overflow用户
提问于 2019-05-27 08:44:08
回答 2查看 75关注 0票数 1

要么函数不返回任何内容,要么返回空字符串。我正在尝试擦除字符串中-e文本之后的下一个序列之前的所有内容。例如,test -e test/file/path应该返回test/file/path,不带-e后面的空格。但是,当函数不返回任何内容或返回空字符串时。我找不到我的功能有任何问题,请帮帮忙!

代码语言:javascript
复制
#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;
}
EN

回答 2

Stack Overflow用户

发布于 2019-05-27 08:55:11

代码语言:javascript
复制
if (str[i] == '-') {
     i += 3;
     break;
}

遇到'-'符号时停止。去掉i是由1增加的,去掉字母e和一个空格是由2增加的。

票数 0
EN

Stack Overflow用户

发布于 2019-05-27 09:52:10

您必须中断for循环,因为您正在等待它完成,而'i‘一直在递增。然后,当你引用'i‘时,它会删除整个字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56318441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档