istringstream字符串流,实现类似字符串截取的功能,字符串流中的put,str()将流转换成为字符串string

简介:  1. istringstream字符串流 #include <iostream> #include <sstream> #include <string>   using namespace std;   struct MyStruct {     string str1,


1. istringstream字符串流

#include <iostream>

#include <sstream>

#include <string>

 

using namespace std;

 

struct MyStruct

{

    string str1, str2, str3;

    double db;

    int num;

    char ch;

};

 

void main()

{

    string  mystring("china  google microsoft 12.9 123 A");

    MyStruct struct1;

   

    istringstream input(mystring);//创建一个字符串扫描流

    input >> struct1.str1 >> struct1.str2 >> struct1.str3 >> struct1.db >> struct1.num >> struct1.ch;

    cout << struct1.str1 << endl;

    cout << struct1.str2 << endl;

    cout << struct1.str3 << endl;

    cout << struct1.db << endl;

    cout << struct1.num << endl;

    cout << struct1.ch << endl;

 

    cin.get();

}

2.实现类似字符串截取的功能

#include <iostream>

#include <sstream>

#include <string>

 

using namespace std;

//实现类似字符串截取的功能

void main()

{

    char mystring[50] = "china#123#A";

    for (char *p = mystring; *p != '\0'; p++)

    {

        if (*p == '#')

        {

            *p = ' ';

        }

    }

    istringstream input(mystring);//创建一个字符串扫描流

    string str;

    int num;

    char ch;

    input >> str >> num >> ch;

 

    cout << str << endl;

    cout << num << endl;

    cout << ch << endl;

 

    cin.get();

}

运行结果:

3.实现类似字符串截取的功能

#include <iostream>

#include <sstream>

#include <string>

 

using namespace std;

//实现类似字符串截取的功能

void main()

{

    ostringstream  MYOUT;

    char str[100] = { 0 };

    //ostringstream MYOUT(str,sizeof(str));

 

    char str1[50] = "a1234567b";

 

    MYOUT << "a1234b" << " " << 123<< ""<< 234.89 << " " << 'h' << " " << str1 << endl;

    cout << MYOUT.str();

    //cout <<str;

 

    cin.get();

}

运行结果如下:

4.字符串流中的put

#define _CRT_SECURE_NO_WARNINGS

#include <iostream>

#include <sstream>

#include <string>

#include <stdlib.h>

 

using namespace std;

void main()

{

    stringstream mystr;//字符串进行输入

    mystr.put('X').put('Y');//连个字符输入

    mystr << "ZXCV";//字符串输入

    cout << mystr.str();

 

    string str = mystr.str();//定义字符串接受值

 

    char ch;    //从字符串内部读取一个字符

    mystr >> ch;

    cout << "\n";

    cout.put(ch);

 

    cout << "\n";

    cout << mystr.str();

    std::cin.get();

    system("pause");

}

运行结果

5.str()将流转换成为字符串string

#define _CRT_SECURE_NO_WARNINGS

#include <iostream>

#include <sstream>

#include <string>

#include <stdlib.h>

 

using namespace std;

void main()

{

    stringstream mystr;//sprintf功能

    char cmd1[30] = { 0 };

    char cmd2[30] = { 0 };

    cin.getline(cmd1, 30).getline(cmd2, 30);//输入两个字符串

    mystr << cmd1 << "&" << cmd2;//字符打印

    string str = mystr.str();//定义字符串接受值

    system(str.c_str());

 

    char cstr[50] = { 0 };//默认的字符串

    strcpy(cstr, str.c_str());

    cout << cstr << endl;

    for (char *p = cstr; *p != '\0'; p++)

    {

        if (*p == '&')

        {

            *p = ' ';

        }

    }

    char newcmd1[30] = { 0 };

    char newcmd2[30] = { 0 };

    stringstream  newstr(cstr);//sscanf的功能

    newstr >> newcmd1 >> newcmd2;

    cout << newcmd1 << "\n" << newcmd2 << endl;

 

    system("pause");

}

 

目录
相关文章
|
7天前
|
Java 测试技术 开发者
Java零基础-indexOf(String str)详解!
【10月更文挑战第14天】Java零基础教学篇,手把手实践教学!
94 65
|
3月前
|
安全 Java API
【Java字符串操作秘籍】StringBuffer与StringBuilder的终极对决!
【8月更文挑战第25天】在Java中处理字符串时,经常需要修改字符串,但由于`String`对象的不可变性,频繁修改会导致内存浪费和性能下降。为此,Java提供了`StringBuffer`和`StringBuilder`两个类来操作可变字符串序列。`StringBuffer`是线程安全的,适用于多线程环境,但性能略低;`StringBuilder`非线程安全,但在单线程环境中性能更优。两者基本用法相似,通过`append`等方法构建和修改字符串。
54 1
|
8天前
|
Java 测试技术 开发者
Java零基础-indexOf(String str)详解!
【10月更文挑战第13天】Java零基础教学篇,手把手实践教学!
29 1
|
11天前
|
NoSQL Redis
Redis 字符串(String)
10月更文挑战第16天
27 4
|
23天前
|
canal 安全 索引
(StringBuffer和StringBuilder)以及回文串,字符串经典习题
(StringBuffer和StringBuilder)以及回文串,字符串经典习题
32 5
|
1月前
|
存储 JavaScript 前端开发
JavaScript 字符串(String) 对象
JavaScript 字符串(String) 对象
39 3
|
2月前
|
存储 C++
C++(五)String 字符串类
本文档详细介绍了C++中的`string`类,包括定义、初始化、字符串比较及数值与字符串之间的转换方法。`string`类简化了字符串处理,提供了丰富的功能如字符串查找、比较、拼接和替换等。文档通过示例代码展示了如何使用这些功能,并介绍了如何将数值转换为字符串以及反之亦然的方法。此外,还展示了如何使用`string`数组存储和遍历多个字符串。
|
3月前
|
C# 开发者 UED
WPF开发者必备秘籍:深度解析文件对话框使用技巧,打开与保存文件原来如此简单!
【8月更文挑战第31天】在WPF应用开发中,文件操作是常见需求。本文详细介绍了如何利用`Microsoft.Win32`命名空间下的`OpenFileDialog`和`SaveFileDialog`类来正确实现文件打开与保存功能。通过示例代码展示了如何设置文件过滤器、初始目录等属性,并使用对话框进行文件读写操作。正确使用文件对话框能显著提升用户体验,使应用更友好易用。
64 0
|
3月前
|
API C# 开发者
WPF图形绘制大师指南:GDI+与Direct2D完美融合,带你玩转高性能图形处理秘籍!
【8月更文挑战第31天】GDI+与Direct2D的结合为WPF图形绘制提供了强大的工具集。通过合理地使用这两种技术,开发者可以创造出性能优异且视觉效果丰富的WPF应用程序。在实际应用中,开发者应根据项目需求和技术背景,权衡利弊,选择最合适的技术方案。
116 0
|
3月前
|
存储 JSON NoSQL
揭秘Redis字符串String的隐藏技能!从基础到进阶,让你的数据存储操作秒变高大上!
【8月更文挑战第24天】Redis中的字符串类型作为其基石,不仅能够存储从简单文本到复杂格式如JSON的各种数据,还能通过多样化的命令实现包括但不限于自增自减、设置过期时间等高级功能,极大提升了其实用性和灵活性。例如,使用`SET`命令可添加或更新键值对,`GET`获取值,`DEL`删除键;同时,`INCR`和`DECR`支持对整数值的原子性增减操作,非常适合实现计数器等功能;通过`EXPIRE`命令设置过期时间,则适用于需要限时存储的应用场景。尽管名为“字符串”,但实际上还可存储图片、音频文件的Base64编码等形式的数据,为开发者提供了强大而灵活的工具。
47 0