岚天逸见

将std::string当字节流使

stringC++标准定义的字符串类,它不但支持文本,而且支持二进制字节流。给一个string变量赋值有多种方法:

1) 拷贝构造函数

2) 等号赋值函数

3) append成员函数

4) push_back成员函数

5) insert成员函数

 

请运行下段代码,并查看它的输出:

#include <stdlib.h>

#include <stdio.h>

#include <string>

 

int main()

{

        using namespace std;

 

        char s[10] = {0};

        memset(s, 'a'5);

 

        string str1 = s;

        string str2;

        str2 = s;

        string str3;

        str3.assign(s, 10);

        string str4;

        str4.assign(str3.data(), str3.size());

        string str5 = str4;;

        string str6;

        str6 = str4;

 

        printf("%u:%s\n", str1.size(), str1.c_str());

        printf("%u:%s\n", str2.size(), str2.c_str());

        printf("%u:%s\n", str3.size(), str3.c_str());

        printf("%u:%s\n", str4.size(), str4.c_str());

        printf("%u:%s\n", str5.size(), str5.c_str());

        printf("%u:%s\n", str6.size(), str6.c_str());

 

        str6.append(str5);

        str5.append(str4.c_str());

        printf("%u:%s\n", str5.size(), str5.c_str());

        printf("%u:%s\n", str6.size(), str6.c_str());

 

        return 0;

}

 

运行后输出为:

> ./x

5:aaaaa

5:aaaaa

10:aaaaa

10:aaaaa

10:aaaaa


posted on   岚天逸见  阅读(892)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义

导航

统计信息

点击右上角即可分享
微信分享提示