`
holoblog
  • 浏览: 1222258 次
博客专栏
E0fcf0b7-6756-3051-9a54-90b4324c9940
SQL Server 20...
浏览量:18866
文章分类
社区版块
存档分类
最新评论

关注C++细节——标准库string类型

 
阅读更多

一. 首先作为一种标准库类型,string存在四种基本的构造函数。如下:
string s; //默认构造函数,s为空串
string s(s1);//用s1来初始化s
string s("My Blog http://blog.csdn.net/IAccepted"); //将s初始化为一个字符串字面值
string s(n,'c'); //将s初始化为n个‘c’的副本
二.对于输入主要就是cin>>s;
(1)读取并忽略开头所有的空白字符。
(2)读取字符直至再次遇到空白字符,读取终止。
(3)输入操作符会返回所读的数据流。
当要读入一整行时可以使用getline函数,getline函数需要两个参数第一个为输入流 对象,第二个为一个string类型对象。值得注意的是getline并不忽略行开头的空白字 符。
三.string::size_type类型
(1)size()函数我们平时都直接默认它返回int类型的值,事实上size()函数返回的是string::size_type类型的值。
(2)string类类型和许多其他类型都定义了一些配套类型。重要的是通过这种配套类型,库类型的使用就能与机器无关。size_type就是这些配套类型中的一种。
(3)建议string的size操作结果的变量为string::size_type类型。特别重要的是,尽量 不要把size的返回值赋值给一个int变量。
四.string对象的相加注意
当进行string对象和字符串字面值混合连接操作时,+操作符的左右操作数必
须至少有一个是string类型的对象。
例.s2=“world”; string s=“hellow”+“,”+s2;这里是错误的,因为第一个+
号的两边都为string字面值。
五.string转为char *
很多时候我们还是需要将string类型的转化为char*来实现自定义的操作,
C++标准库也为了和之前用C写的程序兼容,于是可以用string的c_str()函数。
string a="My Blog http://blog.csdn.net/IAccepted";
char * b=a.c_str();//这样不能通过编译,原因是为了防止string对象内容被恶意修改,返回的是const类型的对象,所以要加const修饰
const char * b=a.c_str();//这样就能编译通过了。
简单总结了一点string使用时的注意事项,欢迎大家补充交流!

分享到:
评论

相关推荐

    标准库 string 类的使用示例代码

    C++入门学习——标准库 string 类的使用,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/46791111

    C++笔试面试宝典2009版与C++ String深入详解2.0版

    总的五个文档:C C++笔试面试宝典2009版.doc,C++ String深入详解2.0版.pdf,c++标准库——boost程序库导论.chm,C语言难点.wps,高质量C.编程指南.林锐著

    《由浅入深学C++-基础、进阶与必做300题》pdf格式 (完整版 带目录

    本书循序渐进地讲述了C++的基础知识、C++程序的组成及其开发过程、C++程序中的数据、表达式和语句、控制程序流程、数组与字符串、指针与引用、使用函数、函数模板、错误和异常处理、宏和预编译、面向对象的开发、...

    c++ primer 第5版(李普曼) part3

    例如,在介绍和使用内置的算术和数组类型时,我们还连同介绍和使用标准库中的类型string和vector。使用这些类型的程序更易写、易理解且更少出错。  太多时候,标准库被当作一种“高级”话题来讲授。很多教材不使用...

    C++入门到精通

    第 3 章介绍了C++语言预定义的内置和复合数据类型 以及 C++标准库提供的 string complex vector 类数据类型 这些类型构成了所有程序的基石 第 4 章详细讨论了 C++语言 支持的表达式 比如算术 关系 赋值表达式 ...

    c++程序字符型的实例讲解

    实际上,string并不是C++语言本身具有的基本类型,它是在C++标准库中声明的一个字符串类,用这种类可以定义对象。每一个字符串变量都是string类的一个对象。 字符串变量的定义和引用 1. 定义字符串变量 和其他类型变量...

    C++大学教程,一本适合初学者的入门教材(part2)

    1.8 C++标准库 1.9 Java、Internet与万维网 1.10 其他高级语言 1.11 结构化编程 1.12 典型C++环境基础 1.13 C++与本书的一般说明 1.14 C++编程简介 1.15 简单程序:打印一行文本 1.16 简单程序:两个整数...

    C++大学教程,一本适合初学者的入门教材(part1)

    1.8 C++标准库 1.9 Java、Internet与万维网 1.10 其他高级语言 1.11 结构化编程 1.12 典型C++环境基础 1.13 C++与本书的一般说明 1.14 C++编程简介 1.15 简单程序:打印一行文本 1.16 简单程序:两个整数...

    JNI技术手册 c/c++调用java

    2) 如何将java传入的String参数转换为c的char*,然后使用? 57 3) 将c中获取的一个char*的buffer传递给java? 57 4) 不知道占用多少空间的buffer,如何传递出去呢? 58 五、 对JAVA传入数据的处理 58 1) 如果传入的是...

    codeup《算法笔记》6.3题目A字符串处理题目编号1983全部测试样例和输出样例

    《算法笔记》6.3小节——C++标准模板库(STL)介绍->string的常见用法详解A字符串处理题目编号1983全部测试样例和输出样例: 题目描述: 读入两个字符串,字符串除了数字还可能包括 '—'、'E'、'e'、'.',相加之后...

    数据结构与算法分析

     1.5 C++细节   1.5.1 指针   1.5.2 参数传递   1.5.3 返回值传递   1.5.4 引用变量   1.5.5 三大函数:析构函数、复制构造函数和operator=   1.5.6 C风格的数组和字符串   1.6 模板...

    数据结构与算法分析C描述第三版

     1.5 C++细节   1.5.1 指针   1.5.2 参数传递   1.5.3 返回值传递   1.5.4 引用变量   1.5.5 三大函数:析构函数、复制构造函数和operator=   1.5.6 C风格的数组和字符串   1.6 模板   ...

    asp.net知识库

    Asp.net 2.0功能体验,细节之Web控件(一) 隐藏控件 Asp.net 2.0功能体验,总体设计思想 Asp.net 2.0 WebPart使用经验点滴 革新:.NET 2.0的自定义配置文件体系初探 关于如何在ASP.NET 2.0中定制Expression ...

    C#微软培训资料

    1.1 Microsoft.NET——一场新的革命.4 1.2 .NET 与 C#.6 1.3 C#语言的特点.8 1.4 小 结 .11 第二章 运行环境 全面了解.NET.12 2.1 .NET 结构.12 2.2 公用语言运行时环境与公用语言规范.13 2.3 开 发 ...

    Tinyxml 源代码(VC6 & VS2005)

    TinyXML是一个简单小巧,可以很容易集成到其它程序中的C++ XML解析器。 它能做些什么 简单地说,TinyXML解析一个XML文档并由此生成一个可读可修改可保存的文档对象模型(DOM)。 XML的意思是“可扩展标记语言...

    8051系列单片机C程序设计完全手册_清晰版_2-2

    8.5.3计算机端的Visual C++程序代码 第9章 C51单片机的工程开发实例 9.1 单片机系统设计方法 9.2 C51系统设计的相关知识 9.2.1 硬件以及电路的知识 9.2.2 软件以及编程语言的知识 9.3 C5l系统设计需要注意的...

    8051系列单片机C程序设计完全手册_清晰版_2-1

    8.5.3计算机端的Visual C++程序代码 第9章 C51单片机的工程开发实例 9.1 单片机系统设计方法 9.2 C51系统设计的相关知识 9.2.1 硬件以及电路的知识 9.2.2 软件以及编程语言的知识 9.3 C5l系统设计需要注意的...

    c#学习笔记.txt

    字符串为 string 类型并可写成两种形式,即用引号引起来和用 @ 引起来。用引号引起来的字符串括在双引号 (") 内, 并且可以包含包括换码序列在内的任何字符用 @ 引起来的字符串以 @ 开头,并用双引号引起来。用 @ 引...

    你必须知道的495个C语言问题.pdf

     ——Francis Glassborow,著名C/C++专家,ACCU(C/C++用户协会)前主席  “本书清晰地阐明了Kernighan与Ritchie的The C Programming Language一书中许多简略的地方,而且精彩地总结了C语言编程实践,强烈推荐!...

    超爽的自学课件(java)

    我们最后介绍的是Java 1.2的“Swing”库——它使Java的UI组件得到了显著的改善。 <br>(14) 第14章:多线程 Java提供了一套内建的机制,可提供对多个并发子任务的支持,我们称其为“线程”。这线程均在单一的...

Global site tag (gtag.js) - Google Analytics