C++学习笔记6_字符串
1. C语言的字符串,char * s = "aaaa";
#include<string>
class Test
{
public :
Test(int a, char*name)
{
this->a=a;
int len = strlen(name);
this->name=new char[len+1];
strcpy(this->name,name);
}
~Test()
{
if(this->name!=NULL)
{
delete name;
name =NULL;
}
}
private:
int a;
char* name;
}
// strlen("123")只是字符串的有效长度,不是实际长度,实际是"123\0",区别于sizeof("123"),sizeof只是数据类型的大小,"asdfadsf"的数据类型是char*,sizeof("123")是指sizeof(typeof(*char))
2. C++的字符串
//如果是c++的字符串,那么
string name;
//这个name值就是string的对象。
那么,构造函数,可以为
Test(int a, char*name)
{
this->name = name;//如果name没有初值,应该是调用拷贝构造函数;如果有初值,应该是调用=操作符函数;
}
3. string对象包裹了char* 变量;
int main(void)
{
stirng s1="123";
stirng s2="456";
string s3 =s1+s2;//调用了+操作符函数
s1[1]='x';//重载[]操作符
cout<<s1<<endl;//重载<<操作符
}
4. string 类型重写了>>号操作符,要调用cin>>str,也要include<string>
istream & operator>>(istream & ins,string &str)
{
if(str.str!=NULL)
{
delete[] str.str;
str.str=NULL;
}
char temp_str[4096]={0};
cin>>temp_str;//char*默认就有重写>>号的。
s.str=new char[strlen(temp_str)+1];
strcpy(s.str,temp_str);
return ins;
}
5.char *strcat(char *dest, const char *src);//往字符串最后空白的地方追加字符串
注意,在使用strcat(str1,"aaaaa");的时候,str1一定要有初始值,不然不知道追加到哪里了
int main(void){
char *str1 = new char[10]{0};//new char[10]{'\0'}这样可能可以。
memset(temp.str,0,10);
strcat(str1,"aaaaa");
strcat(str2,"bbbb");
}
//如果使用strcpy就不用
C++学习笔记6_字符串的更多相关文章
- 1.C#基础学习笔记3---C#字符串(转义符和内存存储无关)
技术qq交流群:JavaDream:251572072 教程下载,在线交流:创梦IT社区:www.credream.com ------------------------------------- ...
- 【学习笔记】字符串—马拉车(Manacher)
[学习笔记]字符串-马拉车(Manacher) 一:[前言] 马拉车用于求解连续回文子串问题,效率极高. 其核心思想与 \(kmp\) 类似:继承. --引自 \(yyx\) 学姐 二:[算法原理] ...
- 「学习笔记」字符串基础:Hash,KMP与Trie
「学习笔记」字符串基础:Hash,KMP与Trie 点击查看目录 目录 「学习笔记」字符串基础:Hash,KMP与Trie Hash 算法 代码 KMP 算法 前置知识:\(\text{Border} ...
- Python学习笔记--Python字符串连接方法总结
声明: 这些总结的学习笔记,一部分是自己在工作学习中总结,一部分是收集网络中的知识点总结而成的,但不到原文链接.如果有侵权,请知会,多谢. python中有很多字符串连接方式,总结一下: 1)最原始的 ...
- matlab学习笔记10_6 字符串与数值间的转换以及进制之间的转换
一起来学matlab-matlab学习笔记10 10_6 字符串与数值间的转换以及进制之间的转换 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合 ...
- ES6学习笔记(二)——字符串扩展
相信很多人也和我一样,不喜欢这样循规蹈矩的逐条去学习语法,很枯燥乏味.主要是这样学完一遍之后,没过一段时间就忘到九霄云外了.不如实际用到的时候研究它记得牢靠,所以我就整理成笔记,加深记忆的同时便于复习 ...
- es6学习笔记--模板字符串
这几天简单看了一下深入浅出es6这本书,感觉特实用,学习了一个新特性---模板字符串在项目开发中,拼接字符串是不可缺少的,动态创建dom元素以及js操作数据都要拼接字符串,在es6出来之前,我们都通常 ...
- python学习笔记(字符串操作、字典操作、三级菜单实例)
字符串操作 name = "alex" print(name.capitalize()) #首字母大写 name = "my name is alex" pri ...
- Python学习笔记之字符串
一.字符串格式化 >>> format="Hello,%s. %s enough for ya?" >>> values=('World','H ...
随机推荐
- [Note] GNUstep on Windows
1.下载与安装 www.gnustep.org/windows/installer.html 下载 GNUstep MSYS System GNUstep Core GNUstep Devel 并安装 ...
- Kafka 学习笔记之 架构
Kafka的概念: 1. AMQP协议 Advanced Message Queuing Protocol (高级消息队列协议) The Advanced Message Queuing Protoc ...
- classpath:类路径
classpath:可以用于web.xml中获取spring springmvc配置文件的位置 用于sprnig配置文件中获取mapper的位置 classpath:可以获取到java目录下的,res ...
- tesseract 测试样例
该图片的链接为https://raw.githubusercontent.com/Python3WebSpider/TestTess/master/image.png,可以直接保存或下载. 首先用命令 ...
- ZGC介绍
zgc是一款可拓展的低时延,为实现以下几个目标而诞生的垃圾回收器: 停顿时间不超过10ms 停顿时间不会导致堆大小增长 堆大小范围可支持几G到几T 再看一下zgc的标签: region-based ( ...
- java23种设计模式(二)抽象工厂模式
我们接着上一章的工厂方法模式继续学习一下抽象工厂模式. 抽象工厂模式:在工厂模式中,如果有多个产品,则就是抽象工厂模式. 例子: 有一个工厂开了两个子公司,专门用来生产电脑配件键盘和鼠标,一个是联想工 ...
- opencv::卷积运算函数filter2D()
opencv::卷积运算函数filter2D() 使用掩模板矩阵(kernel)计算每个像素值 与原图相比,没有黑边 int main(int argc, char** argv) { Mat src ...
- 2019.10.28 CSP%您赛第四场t3
我写不动前两个了. 原谅一下. ____________________________________________________________________________________ ...
- Mobius反演学习
这篇文章参考了许多资料和自己的理解. 先放理论基础. 最大公约数:小学学过,这里只提一些重要的公式: $·$若$a=b$,则$\gcd(a,b)=a=b$: $·$若$\gcd(a,b)=d$,则$\ ...
- js中clientWidth, scrollWidth, innerWidth, outerWidth,offsetWidth的区别
js中clientWidth, scrollWidth, innerWidth, outerWidth,offsetWidth的属性汇总,测试浏览器:ie7~ie11.chrome 和 firefox ...