【问题标题】:c++ how to edit URL (remove part of it)?c ++如何编辑URL(删除部分)?
【发布时间】:2015-06-01 17:15:54
【问题描述】:

大家好,我正在学习 C++ 有很多我还不知道的东西!我想知道如何添加 URL 和编辑?到目前为止我有这个!

我有 3 行数字和 1 行字母,我想删除最后一行数字和字母行

#include <iostream>
#include <string>

#include "stdio.h"
#include "stdlib.h"
#include <algorithm>

using namespace std;

int main()
{
    string str("www.google.com/123456789.123456789123.123456789123456.g.testasdgrrsgd");
    string str2("www.google.com");
    str.replace(str.find(str2), str2.length(), "www.youtube.com/");
    //This code changes from "www.google.com" to "www.youtube.com/"

    size_t sp = str.find_first_of('.g', 7);
    if (sp != string::npos) {
        string base_url(str.begin() + 7, str.begin() + sp);
        cout << base_url << endl;
        sp = str.find_last_of('.g');
        if (sp != string::npos) {
            string query(str.begin() + sp + 1, str.end());
        }
    }
    system("pause");
    return 0;
}

此代码我设法删除了字母行,但无法删除最后一行编号。

我想成为这个最终结果! www.youtube.com/123456789.123456789123

谢谢:)

【问题讨论】:

    标签: c++ url edit


    【解决方案1】:

    我想假设 url 将始终遵循相同的格式,您可以只使用 for 循环

    for(int dotCounter, i = str.length()-1; i >=0 ; --i) {
        if(str.at(i) == '.'){
            dotCounter++;
            if(dotCounter == 2)
                str.erase(i,(i-str.length()-1)
                break;
        }
    }
    

    这将从 url 的末尾倒数,一旦循环遇到 2 个'.' 字符,它将清除所有遍历的位置并中断循环。

    如果 url 并不总是遵循确切的格式,请考虑使用 regular expressions

    【讨论】:

    • 这对我不起作用,我尝试了所有方法,这很奇怪,因为它似乎有道理。但我找到了另一种方法:) 我会发布我的答案
    【解决方案2】:

    我设法找到了方法!适合所有人

        size_t sp = URL.find_first_of('.g', 7);
    if (sp != string::npos) {
        string base_url(URL.begin() + 7, URL.begin() + sp);
    
        size_t sp2 = base_url.find_last_of('.');
        if (sp2 != string::npos) {
            string base_url2(base_url.begin(), base_url.begin() + sp2);
    
            size_t sp3 = base_url2.find_last_of('.');
            if (sp3 != string::npos) {
                string base_url3(base_url2.begin(), base_url2.begin() + sp3);
                cout << base_url3 << endl;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-09
      • 1970-01-01
      • 2019-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多