将std::string当字节流使
string是C++标准定义的字符串类,它不但支持文本,而且支持二进制字节流。给一个string变量赋值有多种方法:
1) 拷贝构造函数
2) 等号赋值函数
3) append成员函数
4) push_back成员函数
5) insert成员函数
请运行下段代码,并查看它的输出:
|
#include <stdlib.h> #include <stdio.h> #include <string> int main() { using namespace std; ] = {}; memset(s, ); string str1 = s; string str2; str2 = s; string str3; str3.); 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()); ; } |
运行后输出为:
|
> ./x 5:aaaaa 5:aaaaa 10:aaaaa 10:aaaaa 10:aaaaa |
将std::string当字节流使的更多相关文章
- 将string当字节流使
string是C++标准定义的字符串类,它不但支持文本,而且支持二进制字节流.给一个string变量赋值有多种方法: 1) 拷贝构造函数 2) 等号赋值函数 3) append成员函数 4) push ...
- std::string类详解
之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够.字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至 ...
- (转)C++——std::string类的引用计数
1.概念 Scott Meyers在<More Effective C++>中举了个例子,不知你是否还记得?在你还在上学的时候,你的父母要你不要看电视,而去复习功课,于是你把自己关在房间里 ...
- std::string 用法总结
标准C++中的string类的用法总结 相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有 ...
- 标准C++类std::string的内存共享和Copy-On-Write...
标准C++类std::string的 内存共享和Copy-On-Write技术 陈皓 1. 概念 Scott Meyers在<More Effective C++>中举了个例子,不知你是否 ...
- C++的std::string的“读时也拷贝”技术!
C++的std::string的读时也拷贝技术! 嘿嘿,你没有看错,我也没有写错,是读时也拷贝技术.什么?我的错,你之前听说写过时才拷贝,嗯,不错的确有这门技术,英文是Copy On Write,简写 ...
- 【转】标准C++类std::string的内存共享和Copy-On-Write技术
1. 概念 Scott Meyers在<More Effective C++>中举了个例子,不知你是否还记得?在你还在上学的时候,你的父母要你不要看电视,而去复习功 ...
- 基于std::string的字符串处理
转自:http://zxdflyer.blog.163.com/blog/static/25664262201322510217495/ C++标准模板库std使用广泛.该库中处理字符串的对象为std ...
- 标准C++类std::string的内存共享和Copy-On-Write技术
标准C++类std::string的 内存共享和Copy-On-Write技术 陈皓 1. 概念 Scott Meyers在<More Effective C++>中举了个例子,不知你是 ...
随机推荐
- Druid.io系列(九):数据摄入
1. 概述 Druid的数据摄入主要包括两大类: 1. 实时输入摄入:包括Pull,Push两种 - Pull:需要启动一个RealtimeNode节点,通过不同的Firehose摄取不同种类的数据源 ...
- thinkjs 学习笔记
抽空大概看了下thinkjs,总体感觉很不错 不了解的可以看下文档(http://thinkjs.org/doc.html) 介绍就不多说了,看下快速入门 npm install -g thinkjs ...
- Canvas帧数和步长实例
<!DOCTYPE HTML> <html lang="zh-CN"> <head> <meta http-equiv="Con ...
- 优化笔记: jxrsfxrxx_D_20140916.gz
表的重复扫描. ----------------------------------想进一步研究,继续往下看------------------------------ 1. 所有相似 ...
- OSPF理论介绍
OSPF协议Open Shortest Path First是链路状态协议.RIP和EIGRP是距离矢量协议只知道邻居,但链路状态可知道全网信息,因此天然免疫环路.距离矢量协议和链路状态协议最大的区别 ...
- setKeepAliveTimeout
setKeepAliveTimeout 定期唤醒 间隔至少600秒唤醒,唤醒后执行的代码最多10秒要执行完成. 与setMinimumBackgroundFetchInterval的区别呢?perfo ...
- python:随机数 random
#随机数 import random print(random.randint(10,12))#生成10-12之间的整数 print(random.uniform(10,12))#生成10-12之间的 ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 15—Anomaly Detection异常检测
Lecture 15 Anomaly Detection 异常检测 15.1 异常检测问题的动机 Problem Motivation 异常检测(Anomaly detection)问题是机器学习算法 ...
- Linux 入门知识一(附上如何解决Ubuntu的root密码问题)
.centos有拥有七个控制台,其中第一到第六个是字符界面,第七个是图形界面 切换的快捷键是ctrl+shift+fn(n为自然数) 输入tty的话,可以检查当前处于哪个控制台 如何在cent ...
- Java如何快速修改Jar包里的文件内容
需求背景:写了一个实时读取日志文件以及监控的小程序,打包成了Jar包可执行文件,通过我们的web主系统上传到各个服务器,然后调用ssh命令执行.每次上传前都要通过解压缩软件修改或者替换里面的配置文件, ...