前几天在网上,一位网友问我几个问题如下:

     string S0(, 'A');

     string S1 = "abcdefg";

     string S2(S1, , );
string S3 (S1, ); cout << "s0 = " << S0.c_str() <<endl;
cout << "s2 = " << S2.c_str() <<endl;
cout << "s3 = " << S3.c_str() <<endl;

就这么简单的几句语句,发现如果不去运行下,还真不知道结果是什么。

常用的 string赋值都是这样的:

 string s = "aaa";

 string s1("bbbb");

查了下资料,才知道string的构造函数居然有那么多。

 a) string s; //生成一个空字符串s
b) string s(str) //拷贝构造函数 生成str的复制品
c) string s(str, stridx) //将字符串str内"始于位置stridx"的部分当作字符串的初值
d) string s(str, stridx, strlen) //将字符串str内"始于stridx且长度顶多strlen"的部分作为字符串的初值
e) string s(cstr) //将cstr字符串作为s的初值
f) string s(chars, chars_len) //将C字符串前chars_len个字符作为字符串s的初值。
g) string s(num, c) //生成一个字符串,包含num个c字符
h) string s(beg, end) //以区间beg;end(不包含end)内的字符作为字符串s的初值

STL string的构造函数的更多相关文章

  1. [转载] C++ STL string的Copy-On-Write技术

    原文: http://coolshell.cn/articles/12199.html stl的string是经过严格优化的, 深入理解对以后编程过程中应用string非常有益处, 感谢左耳朵耗子的精 ...

  2. 深入剖析 linux GCC 4.4 的 STL string

    转自: 深入剖析 linux GCC 4.4 的 STL string 本文通过研究STL源码来剖析C++中标准模板块库std::string运行机理,重点研究了其中的引用计数和Copy-On-Wri ...

  3. C++标准模板库Stand Template Library(STL)简介与STL string类

    参考<21天学通C++>第15和16章节,在对宏和模板学习之后,开启对C++实现的标准模板类STL进行简介,同时介绍简单的string类.虽然前面对于vector.deque.list等进 ...

  4. 类string的构造函数、拷贝构造函数和析构函数

    原文:http://www.cnblogs.com/Laokong-ServiceStation/archive/2011/04/19/2020402.html   类string的构造函数.拷贝构造 ...

  5. String的构造函数、析构函数和赋值函数

    编写类String的构造函数.析构函数和赋值函数 已知类String的原型为: class String { public: String(const char *str = NULL); // 普通 ...

  6. 编写类String 的构造函数、析构函数和赋值函数

    编写类String 的构造函数.析构函数和赋值函数,已知类String 的原型为:class String{public:String(const char *str = NULL); // 普通构造 ...

  7. stl string 容器的使用

    string 是基本的字符串序列容器,对应数据结构中的串,和vector<char>也类似,但功能更多 string 容器的使用 1,string 的构造函数是. string() 2,s ...

  8. 格式字符串分配stl::string

    代码非常easy,不解释,直接在代码: #include <cstdio> #include <cstdarg> #include <iostream> using ...

  9. 浅谈C++ STL string容器

    浅谈C++ STL string容器 本篇随笔简单讲解一下\(C++STL\)中\(string\)容器的使用方法及技巧. string容器的概念 其实\(string\)并不是\(STL\)的一种容 ...

随机推荐

  1. 生成GUID唯一值的方法汇总(dotnet/javascript/sqlserver)

    一.在 .NET 中生成1.直接用.NET Framework 提供的 Guid() 函数,此种方法使用非常广泛.GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的任何两台计 ...

  2. 真正解决vbox不能为虚拟电脑打开一个新任务的解决方法

    今天小编电脑上出现了一个问题,如上图,经过了一个朋友的帮助终于问题解决了,解决方法: 在每一个中把 红框中打上勾号即可

  3. 【基础】MVC路由规则

    一.RouteData解析过程 在ASP.NET MVC中,服务器收到来自客户端的请求后,会经过一些列的处理拿到请求的数据,比如在Pipeline 管线事件中,通过订阅适当的事件,将HttpConte ...

  4. 纯JS判断各种浏览器类型及版本.

    IE11或者非IE if (!document.all) { alert('IE11+ or not IE'); } IE10 if (document.all && document ...

  5. python之生成器

    def repeater(value): while True: new = yield value print(first, new) if new is not None: value = new ...

  6. canvas变幻曲线

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  7. 第一章 Part 1/2 Git 一览

    虽然这个系列的文章主要关注的是Github,然而首先了解下Git的基本概念和名词也是非常有帮助的. 工作目录(Working Directory) 工作目录是你个人计算机上的一个目录.在该目录下,每一 ...

  8. 美团HD(4)-二级联动效果

    DJNavDropView.m #import "DJNavDropView.h" #import "DJCategory.h" #import "D ...

  9. CP

    cp:copy files and directories,如果要拷贝目录,则使用-a或者-r参数,则能够拷贝目录, 如果源文件是多个,那目标文件在最后,且是目录. Cp [-aifpru] [源文件 ...

  10. [NOIP2016]愤怒的小鸟

    题目描述 Kiana最近沉迷于一款神奇的游戏无法自拔. 简单来说,这款游戏是在一个平面上进行的. 有一架弹弓位于(0,0)处,每次Kiana可以用它向第一象限发射一只红色的小鸟,小鸟们的飞行轨迹均为形 ...