当前位置: 首页 > news >正文

11.string(下)

流插入流提取 io 流最好不要加const

这样测试

io流插入流提取是不是必须写成友元函数,不是的,不需要访问他的私有,遍历访问直接就走了,范围for就是迭代器,下标【】就实现了,

  

空格 换行都给了,结束不了,越过了空格,下一个直接拿到5了,cin,和scanf输入和提取任意类型值,默认空格和换行都是分隔符,空格就被忽略掉了

所以这里用get,get就不用管分隔符,就是一个字符一个字符的读,不涉及别的类型,只有字符就不涉及分隔符,

这还多了个hello world ,因为s1之前就是hello world  ,标准库这种情况hello world 就不会保留

所以这clear 一下,不清空间,清数据  string。h中

若想拿到1234 56就要写getline

不理解就记住,cin默认提取不到 空格和换行

cin对于特别长的字符串,不断+=字符还是蛮吃亏的,不断扩容,有很多消耗。提前开空间也不知道开多少,所以以下思路:

istream& operator>>(istream& in, string& s){s.clear();const int N = 256;char buff[N];int i = 0;char ch;//in >> ch;ch = in.get();while (ch != ' ' && ch != '\n'){buff[i++] = ch;if (i == N-1){buff[i] = '\0';s += buff;i = 0;}//in >> ch;ch = in.get();}if (i > 0){buff[i] = '\0';s += buff;}return in;}
}

每次255,走三次就进来了,buffer当做我的缓冲,

若给string开空间是长期开,除非析构,buffer开是栈上不会长期开,开很快,如果很长,我不会频繁扩,每插入200多个才扩,甚至不需要,+=string,不够2倍还是按2倍扩,所以甚至不需要,如果插入很短的,我这个string也不用开很大,buffer再加大,扩容更少。

要实现getline 直接把“ ”和换行换成换行。

编码:内存磁盘只能保存整形,那文字符号咋办,值和符号映射编码关系,美国的就出来ASCLL编码表。外国用的少所以一共用了128个,

打印过程是查编码表的过程,

所谓乱码就是值和表对不上   

但是中文很多,没法用,

简单了解:

utf8是变长编码中文一般用两个字符,

反正是一个值对应一个符号。一个汉字用两个字节存储

可以通过改变每个字节  ++  --就可以改变文字

为什么string是模版

这里并不一定是char,char的时候默认string ,这时候默认支持utf8,

这时候就是四个字节

这是国际编码,,所有文字,,
gbk是国内的,没特殊需求都是utf8,windous就是gbk,

http://www.dtcms.com/a/593320.html

相关文章:

  • OpenVINS代码解读---State.h
  • 提供深圳网站制作公司永久使用免费虚拟主机
  • 智能时代的缘起:从ChatGPT到修行之路
  • 智能守护绿水青山:视频融合平台EasyCVR在森林防火监控中的实战应用
  • 如何做好网站建设前期网站规划软文写手兼职
  • docsify 本地部署完整配置模板 || 将md文件放到网页上展示
  • Bash Shell脚本学习——唇读数据集格式修复脚本
  • 网站界面用什么软件做建设网站需申请什么
  • 底层视觉及图像增强-项目实践(十六-0-(8):端到端DeepHDRNet:从原理到LED显示工程的跨界实践):从奥运大屏,到手机小屏,快来挖一挖里面都有什么
  • 视频号视频下载到手机的详细教程,以及常使用的工具!
  • 禹城网站建设公司安卓网站开发视频
  • 江国青:从郧阳沃土到法治与媒体前沿的跨界行者
  • Mediasoup的SFU媒体服务转发中心详解(与传统SFU的区别)
  • 招标网站免费企业作风建设心得体会
  • 【Java SE 基础学习打卡】07 Java 语言概述
  • 淘宝/天猫获得淘宝买家秀API,python请求示例
  • MATLAB实现BiLSTM(双向长短时记忆网络)数值预测
  • Prefix-Tuning:大语言模型的高效微调新范式
  • 凡科做的网站为什么搜不到学校网站建设成功案例
  • 通过重新安装 Node.js 依赖来解决环境问题
  • 外贸网站建站注意事项天津市哪里有做网站广告的
  • [設計模式]設計模式的作用
  • git报错解决
  • 路径总和 与
  • InnoDB 表查询默认按主键排序?
  • flash 网站模板可视化网页开发
  • Google Earth Engine (GEE) 教程——提取DNVI数据10米分辨率(免费提供完整代码)
  • C++ 在 AI 时代的核心角色:从系统底座到支撑 LLM 的技术基石
  • viewModel机制及原理总结
  • 建立网站免费高端html5网站建设织梦模板