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. 1.C#基础学习笔记3---C#字符串(转义符和内存存储无关)

    技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社区:www.credream.com ------------------------------------- ...

  2. 【学习笔记】字符串—马拉车(Manacher)

    [学习笔记]字符串-马拉车(Manacher) 一:[前言] 马拉车用于求解连续回文子串问题,效率极高. 其核心思想与 \(kmp\) 类似:继承. --引自 \(yyx\) 学姐 二:[算法原理] ...

  3. 「学习笔记」字符串基础:Hash,KMP与Trie

    「学习笔记」字符串基础:Hash,KMP与Trie 点击查看目录 目录 「学习笔记」字符串基础:Hash,KMP与Trie Hash 算法 代码 KMP 算法 前置知识:\(\text{Border} ...

  4. Python学习笔记--Python字符串连接方法总结

    声明: 这些总结的学习笔记,一部分是自己在工作学习中总结,一部分是收集网络中的知识点总结而成的,但不到原文链接.如果有侵权,请知会,多谢. python中有很多字符串连接方式,总结一下: 1)最原始的 ...

  5. matlab学习笔记10_6 字符串与数值间的转换以及进制之间的转换

    一起来学matlab-matlab学习笔记10 10_6 字符串与数值间的转换以及进制之间的转换 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合 ...

  6. ES6学习笔记(二)——字符串扩展

    相信很多人也和我一样,不喜欢这样循规蹈矩的逐条去学习语法,很枯燥乏味.主要是这样学完一遍之后,没过一段时间就忘到九霄云外了.不如实际用到的时候研究它记得牢靠,所以我就整理成笔记,加深记忆的同时便于复习 ...

  7. es6学习笔记--模板字符串

    这几天简单看了一下深入浅出es6这本书,感觉特实用,学习了一个新特性---模板字符串在项目开发中,拼接字符串是不可缺少的,动态创建dom元素以及js操作数据都要拼接字符串,在es6出来之前,我们都通常 ...

  8. python学习笔记(字符串操作、字典操作、三级菜单实例)

    字符串操作 name = "alex" print(name.capitalize()) #首字母大写 name = "my name is alex" pri ...

  9. Python学习笔记之字符串

    一.字符串格式化 >>> format="Hello,%s. %s enough for ya?" >>> values=('World','H ...

随机推荐

  1. [Note] GNUstep on Windows

    1.下载与安装 www.gnustep.org/windows/installer.html 下载 GNUstep MSYS System GNUstep Core GNUstep Devel 并安装 ...

  2. Kafka 学习笔记之 架构

    Kafka的概念: 1. AMQP协议 Advanced Message Queuing Protocol (高级消息队列协议) The Advanced Message Queuing Protoc ...

  3. classpath:类路径

    classpath:可以用于web.xml中获取spring springmvc配置文件的位置 用于sprnig配置文件中获取mapper的位置 classpath:可以获取到java目录下的,res ...

  4. tesseract 测试样例

    该图片的链接为https://raw.githubusercontent.com/Python3WebSpider/TestTess/master/image.png,可以直接保存或下载. 首先用命令 ...

  5. ZGC介绍

    zgc是一款可拓展的低时延,为实现以下几个目标而诞生的垃圾回收器: 停顿时间不超过10ms 停顿时间不会导致堆大小增长 堆大小范围可支持几G到几T 再看一下zgc的标签: region-based ( ...

  6. java23种设计模式(二)抽象工厂模式

    我们接着上一章的工厂方法模式继续学习一下抽象工厂模式. 抽象工厂模式:在工厂模式中,如果有多个产品,则就是抽象工厂模式. 例子: 有一个工厂开了两个子公司,专门用来生产电脑配件键盘和鼠标,一个是联想工 ...

  7. opencv::卷积运算函数filter2D()

    opencv::卷积运算函数filter2D() 使用掩模板矩阵(kernel)计算每个像素值 与原图相比,没有黑边 int main(int argc, char** argv) { Mat src ...

  8. 2019.10.28 CSP%您赛第四场t3

    我写不动前两个了. 原谅一下. ____________________________________________________________________________________ ...

  9. Mobius反演学习

    这篇文章参考了许多资料和自己的理解. 先放理论基础. 最大公约数:小学学过,这里只提一些重要的公式: $·$若$a=b$,则$\gcd(a,b)=a=b$: $·$若$\gcd(a,b)=d$,则$\ ...

  10. js中clientWidth, scrollWidth, innerWidth, outerWidth,offsetWidth的区别

    js中clientWidth, scrollWidth, innerWidth, outerWidth,offsetWidth的属性汇总,测试浏览器:ie7~ie11.chrome 和 firefox ...