c++如何编辑URL(删除部分)
c++ how to edit URL (remove part of it)?
大家好,我正在学习的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
谢谢:)
假设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不总是遵循精确的格式,那么考虑使用正则表达式
我设法找到了一个方法!
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;
相关文章:
- 将数组的地址分配给变量并删除
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- C/C++编译器通常会删除重复的库吗
- 从链接列表c++中删除一个项目
- C++如何通过用户输入删除列表元素
- 为什么在C++中使用私有复制构造函数与删除复制构造函数
- 是否需要删除包含对象的"pair"?
- 如何在自删除后将对象设置为nullptr
- 迭代时从向量和内存中删除对象
- 使用函数"remove"删除重复元素
- 如何从多映射中删除特定的重复项
- 运算符C++ "delete []"仅删除 2 个前值
- 删除指向指针的指针是运行时错误吗
- 将指针设置为"nullptr"并不能防止双重删除?
- 为什么示例代码访问IUnknown中已删除的内存
- 如何通过 getter 函数删除矢量的元素?
- 在加载 MSHTML 文档之前从 MSHTML 文档中删除无效的 URL
- 如何删除部分类?
- 删除url的最后一部分
- c++如何编辑URL(删除部分)