首页 > 编程语言 >当你第一次用C++string的assign会遇到这种情况

当你第一次用C++string的assign会遇到这种情况

时间:2024-07-26 11:27:06浏览次数:14  
标签:const string C++ assign hello size

在这里插入图片描述

当你第一次用string的assign时,会发现有一点小区别,见以下代码:

string str1;
str1.assign("hello C++");
cout << str1 << endl;

string str2;
str2.assign(str1,5);
cout << str1 << endl;

string str3;
str3.assign("hello C++", 5);
cout << str3 << endl;

hello C++
C++
hello

可以看到str2输出是C++ ,而str3输出是hello,这是因为如果你使用的是一个已经存在的string 对象,后面跟的数字是开始复制的位置,这里str2将从str1第5个位置开始复制,所以输出了C++(前面还有一个空格)。而如果源字符串是一个字符串字面量,后面跟的数字是复制前几个字符。这里str3就是复制了hello C++的前5个字符,输出了hello

assign(const basic_string& str);:接受一个 std::string 对象。
assign(const basic_string& str, size_type pos, size_type count = npos);:接受一个 std::string 对象,一个起始位置 pos,以及可选的字符数 count。
assign(const CharT* s, size_type n);:接受一个 C 风格字符串和一个字符数 n。

标签:const,string,C++,assign,hello,size
From: https://blog.csdn.net/ZY52678/article/details/140710463

相关文章

  • 使用pybind11封装c++的dll,供python调用
    用pip安装好pybind11 文件清单,都写在一个目录里//文件名:add.cppextern"C"doubleadd(doublein1,doublein2){returnin1+in2;}//文件名:sub.cppextern"C"doublesub(doublein1,doublein2){returnin1-in2;}//文件名:mul.cppextern"......
  • P9304 「DTOI-5」3-1题解,c++树的遍历例题
    题意给定以n(1≤n≤1......
  • C/C++默认生成的几个函数s
    一、关键词类/结构体默认生成。拷贝/移动+构造/赋值=组合不同方式有4种,除默认、析构,共计6种。在使用时:拷贝/移动+赋值的,都是定义和赋值分开;拷贝/移动+构造的,都是定义和赋值一起。二:知识点默认构造函数Student():age(0){};拷贝构造函数Student(constStudent&i......
  • C++ typeid 关键字的注意事项
    typeid 是C++的一个关键字,用于动态类型获取。typeid 运算符与RTTI(运行时类型信息)密切相关,它返回一个指向 std::type_info 对象的引用,该对象表示了表达式的类型。使用 typeid 时,需要注意以下几个方面:需要#include <typeinfo>头文件:要使用 typeid,应在代码中包含 <t......
  • C++ 虚基类注意事项
    C++中的虚基类(VirtualBaseClass)是一个重要的概念,主要用于解决多重继承中的菱形继承问题,即当一个派生类通过多条路径继承同一个基类时,基类在派生类中会有多个副本,导致资源浪费和不必要的复杂性。以下是C++虚基类的一些详细注意事项:1.虚基类的定义与声明定义方式:虚基类并不......
  • C++中的智能指针与裸指针有什么区别?
    在C++中,智能指针是一种特殊类型的指针对象,它能自动管理内存的分配和释放。智能指针与裸指针(即传统的指针)之间有以下区别:自动资源管理:智能指针通过使用引用计数或其他机制来自动管理内存资源的分配和释放。这意味着当不再需要指针指向的对象时,智能指针会自动释放内存,避免......
  • C++中的虚函数与多态机制如何工作?
    在C++中,虚函数和多态机制是实现面向对象编程的重要概念。虚函数是在基类中声明的函数,可以在派生类中进行重写。当基类的指针或引用指向派生类的对象时,通过调用虚函数可以实现动态绑定,即在运行时确定要调用的函数。多态是指通过基类的指针或引用调用虚函数时,会根据对象的实......
  • C++文件系统操作5 - 跨平台列出指定目录下的所有文件和文件夹
    1.关键词2.fileutil.h3.fileutil.cpp4.filesystem_win.h5.filesystem_win.cpp6.filesystem_unix.cpp7.源码地址1.关键词C++文件系统操作列出指定目录下的所有文件列出指定目录下的所有文件夹跨平台2.fileutil.h#pragmaonce#include<string>#includ......
  • C++ - 目录 - 一周速通
    基础入门免费教程希望可以帮助每一位编程爱好者!开源地址:点我加入开发工具随课习题文章目录C++基础-0-了解历史C++基础-1-开始入门C++基础-2-数据类型C++基础-3-变量常量C++基础-4-运算符号C++基础-5-条件判断C++基础-6......
  • 【C++】选择结构案例-三只小猪称体重
    案例问题假设有三只小猪A、B、C,在输入三者体重后希望能输出他们各自的体重并测出谁最重思路先让A与B相比较,如果A重,则让A和C相比较,如果A重则输出A最重,否则输出C最重在最开始的条件(AB相比较),如果B重,则让B与C相比较,如果B重则输出B最重,否则C最重下面是一个实例#include<iostre......