IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 字符串拆分之istringstream、分割url获取各项参数值 -> 正文阅读

[C++知识库]字符串拆分之istringstream、分割url获取各项参数值

C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含这个头文件。
istringstream类用于执行C++风格的串流的输入操作。 ostringstream类用于执行C风格的串流的输出操作。
strstream类同时可以支持C风格的串流的输入输出操作。 istringstream的构造函数原形如下:
istringstream::istringstream(string str);
该构造函数只能拆分以空格分割的字符串,其余分隔符需要先进行转换

示例代码:

#include<iostream>  
#include<sstream>        
#include<string>  
using namespace std;  
int main()  
{  
    string str="1202,12345,chaihdoiawh"; 
	for(int i=0; i<str.size();i++)
	{
		if(str[i] == ',')
		{
			str[i] = ' ';
		}
	 } 
    istringstream output(str);  
    string outputLine;  
    while(output>>s)  
    {  
        cout<<outputLine<<endl;  
    }        
} 

运行结果:
在这里插入图片描述

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char sU[]="http://***.***.***publicservice?restype=geotiff&action=get&path=202112355.tif&encoding=utf-8";
char *getUrlPath(char *sUrl,char *UrlPath) {
    char splite[1024],*UrlName,append[80];
    int Length,num,sNum;
    static char finish[80];

    finish[0]=0;
    UrlName=strchr(sUrl,'?');
    if (!UrlName) return finish;
strncpy(splite,UrlName,1023);
splite[1023]=0;
    splite[0]='&';
    append[0]='&';
strncpy(append+1,UrlPath,77);
append[78]=0;
    strcat(append,"=");
    Length=strlen(append);
    UrlName=strstr(splite,append);
    if (!UrlName) return finish;
    UrlName=UrlName+Length;
    num=0;
    while (1) {
        if (UrlName[num]=='&') {UrlName[num]=0;break;}
        if (UrlName[num]==0) break;
        if (num>=79) {UrlName[num]=0;break;}
        num++;
    }
    if (num>0) {
        strcpy(append,UrlName);
        Length=0;
        UrlName=append;
        while (1) {
            k=sscanf(UrlName,"%%%2x",&num);
            if (1==k)
 {
                finish[Length++]=(char)num;
                UrlName+=3;
            } 
else if (0==sNum) {
                finish[Length++]=UrlName[0];
                UrlName++;
            } else break;
        }
        finish[L]=0;
    }
    return finish;
}
int main() {
    printf("path=%s\n",getUrlPath(sU,"path"));
    return 0;
}

//path=202112355.tif

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-24 18:17:43  更:2021-12-24 18:20:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:53:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码