如何切弦 C

新手上路,请多包涵

您好,我想在这种情况下剪断字符串:

 if (std::count(text.begin(), text.end(), ',') > 3 {
   //Cut String after 3 ','
}

文字看起来像这样:

“第 1 项,第 2 项,第 3 项,第 4 项,第 5 项”

我想要这个:

“item1, item2, item3, item4[把右边的东西都剪掉>>], item5” 并返回”item1, item2, item3, item4”

看着第一个答案我正在寻找这样的东西(但工作):

 #include <string.h>
#include <iostream>
using namespace std;

int main()
{
    string s1 = "item1, item2, item3, item4, item5";

    if(std::count(s1.begin(), s1.end(), ',') > 3) {
        int comma = 0;
        int x = sizeof(s1);
        for(int i = 0; i < x; i++) {
            if (comma == 3) {
                string sub = s1.substr(0, i);
                cout << "String is: " << sub;
            }
            if(s1[i] == ',') {
                comma++;
            }
        }
    }
    return 0;
}

原文由 kubernik 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 427
1 个回答

您需要更改少量代码,如下所示。

 #include <string.h>
#include <iostream>
using namespace std;

int main()
{
    string s1 = "item1, item2, item3, item4, item5";
    int comma = 0;
    int x = s1.length();
    bool flag = false;
    for(int i = 0; i < x; i++) {
        if (comma == 4) {
            string sub = s1.substr(0, i-1);
            cout << "String is: " << sub;
            flag = false;
            return 0;
        }
        if(s1[i] == ',') {
            comma++;
        }
        else{
            flag = true;
        }
    }
    if(flag)
        cout<<"String not contain more then 3 comma's \n String is :: "<<s1;

    return 0;
}

原文由 Bharat Vankar 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题