在这里总结一下string的用法

String是可变长字符串,使用的时候要包含string头文件。

要想使用标准C++中string类,必须要包含

#include <string>// 注意是<string>,不是<string.h>,带.h的是C语言中的头文件

using  std::string;

using  std::wstring;

using namespace std;

下面你就可以使用string/wstring了,它们两分别对应着char和wchar_t。

初始化:

string s1;     //是一个空的string

strings2(s1);

strings3="hello";  //拷贝初始化

strings4=s3;        // 将s3的内容拷贝给s4

strings5(10,'c');   //直接初始化,string中有十个c

strings6("hello");  //s6中内容是hello

对string读写操作:

(2)    string a;  //读写string对象

while(cin>>a)

{

cout<<a<<endl;

}

while(getline(cin,a))

cout<<a<<endl;

cout<<a<<endl;对于此类的操作,string对象对此操作也是返回运算符左侧的运算对象作为其结果。即,可以实现级联操作。

相当于,         cout<<s1<<s2<<s3<<endl;

cin<<s1<<s2<<s3<<endl;

(2)当我们遇到不知道具体数量的string时

stringword;

while(cin>>word)

cout<<word<<endl;

只有当cin插入流遇到文件结束或者非法输入时才结束。(例如空白字符,或者文件结束标志)

(3)

关于string的对象的操作:

string s;

s.empty();   //当string对象为空时,返回真,否则返回假

s.size();     //返回S中字符的个数(但返回的类型并不是int 类型,而是size_t类型,一种无符号的类型)

使用两个等号的比较运算符时‘==’,当且仅当两个string对象中字符一对一相等并且长度相等。

String对象可以直接相加

string S1=”hello”;

string S2=” C++”;

String s3=s1+s2;   //S3的内容是 “hello C++”

String 对象也能可字面值(字符串)进行相加

String s1=”hello”;

S1=s1+” C++”     //s1 的结果仍然是hello C++

(4)关于string的一些操作函数

Isspace(c) 当c是空白字符时(空格回车 制表),返回真

tolower(c)  大写转小写

toupper(c)  小写转大写

对于处理string中的字符

我们有如下方法,我们以大小写转换为例

stringstr3="a,b,c";

decltype(str3.size())i;      我们使用decltype()来获取string中字符下标的类型

for(i=0;i<str3.size();i++)

str3[i]=toupper(str3[i]);

cout<<str3<<endl;       string的 内容变为大写 A B C

我们还可以通过使用迭代器来遍历字符,我们使用auto关键字,auto会自动根据初始值的类型来设定我们定义的变量

//stringstr("zheng");

//for(autoi=str.begin();i!=str.end();i++)     i的类型就是size_t类型

//      *i=toupper(*i);

//      cout<<str<<endl;   输出的结果是大写  ZHANG

string的特性描述:

intcapacity()const;    //返回当前容量(即string中不必增加内存即可存放的元素个数)

intmax_size()const;    //返回string对象中可存放的最大字符串的长度

intsize()const;        //返回当前字符串的大小

intlength()const;       //返回当前字符串的长度

boolempty()const;        //当前字符串是否为空

void resize(intlen,char c);//把字符串当前大小置为len,并用字符c填充不足的部

最后要介绍如何在Win32 应用程序中引用MFC中的部分类,例如CString。

1.在工程目录下右键选择"Properties”--->"Configuration Properties”--->“General”--->"Use of MFC"--->"Use MFC in a Static Library",

默认的是:"Use Standard Windows Libraries",

C++string的使用的更多相关文章

  1. 透过WinDBG的视角看String

    摘要 : 最近在博客园里面看到有人在讨论 C# String的一些特性. 大部分情况下是从CODING的角度来讨论String. 本人觉得非常好奇, 在运行时态, String是如何与这些特性联系上的 ...

  2. JavaScript String对象

    本编主要介绍String 字符串对象. 目录 1. 介绍:阐述 String 对象的说明以及定义方式. 2. 实例属性:介绍 String 对象的实例属性: length. 3. 实例方法:介绍 St ...

  3. ElasticSearch 5学习(9)——映射和分析(string类型废弃)

    在ElasticSearch中,存入文档的内容类似于传统数据每个字段一样,都会有一个指定的属性,为了能够把日期字段处理成日期,把数字字段处理成数字,把字符串字段处理成字符串值,Elasticsearc ...

  4. [C#] string 与 String,大 S 与小 S 之间没有什么不可言说的秘密

    string 与 String,大 S 与小 S 之间没有什么不可言说的秘密 目录 小写 string 与大写 String 声明与初始化 string string 的不可变性 正则 string ...

  5. js报错: Uncaught RangeError: Invalid string length

    在ajax请求后得到的json数据,遍历的时候chrome控制台报这个错误:Uncaught RangeError: Invalid string length,在stackoverflow查找答案时 ...

  6. c# 字符串连接使用“+”和string.format格式化两种方式

    参考文章:http://www.liangshunet.com/ca/201303/218815742.htm 字符串之间的连接常用的两种是:“+”连接.string.format格式化连接.Stri ...

  7. 【手记】注意BinaryWriter写string的小坑——会在string前加上长度前缀length-prefixed

    之前以为BinaryWriter写string会严格按构造时指定的编码(不指定则是无BOM的UTF8)写入string的二进制,如下面的代码: //将字符串"a"写入流,再拿到流的 ...

  8. JavaScript中String对象的方法介绍

    1.字符方法 1.1 charAt() 方法,返回字符串中指定位置的字符. var question = "Do you like JavaScript?"; alert(ques ...

  9. 在多线程编程中lock(string){...}隐藏的机关

    常见误用场景:在订单支付环节中,为了防止用户不小心多次点击支付按钮而导致的订单重复支付问题,我们用 lock(订单号) 来保证对该订单的操作同时只允许一个线程执行. 这样的想法很好,至少比 lock( ...

  10. BCL中String.Join的实现

    在开发中,有时候会遇到需要把一个List对象中的某个字段用一个分隔符拼成一个字符串的情况.比如在SQL语句的in条件中,我们通常需要把List<int>这样的对象转换为“1,2,3”这样的 ...

随机推荐

  1. .Net性能优化时应该关注的数据

    解决性能问题的时候,我往往会让客户添加下面一些计数器进行性能收集. Process object下的所有计数器: Processor object下的所有计数器: System object下的所有计 ...

  2. C++ 牛人博客(不断更新中...)

    http://www.zhangjiee.com/ 新浪微博@独酌逸醉. Github. GitCafe. stackoverflow. Quora http://cpp1x.org/ 刘未鹏 | M ...

  3. angular.foreach 循环方法使用指南

    angular有自己的生命周期.循环给一个 angular监听的变量复值时.最好还是用angular自带的循环方法.“angular.foreach” },{a:}]; angular.forEach ...

  4. Windows Phone 资源管理与换肤思考

    新入手一台Windows 8的笔记本,安装了VS2013后,终于又可以开发WP了.公司暂时不愿意开发WP,那么咱就自行研究吧! 在没有WP开发环境的时候,曾经在WPF尝试了一下换肤功能的实现.最简单的 ...

  5. JDBC数据库连接(MySQL为例)

    1.什么是JDBC?有什么作用? Java Data Base Connectivity  Java数据库连接协议 是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问. 他提 ...

  6. linux device model简述

    参考: 1)<LINUX设备驱动程序>第十四章 Linux 设备模型 2)内核源码2.6.38 内核初始化的时候会对设备模型作初始化,见init/main.c: start_kernel- ...

  7. HTML新特性之一----canvas

    <canvas id="me"></canvas>//申请一个canvas标签    <script>                var c ...

  8. 查看软、硬raid信息的方法

    软件raid:只能通过Linux系统本身来查看cat /proc/mdstat可以看到raid级别,状态等信息. 硬件raid:最佳的办法是通过已安装的raid厂商的管理工具来查看,有cmdline, ...

  9. Windows2008下搭建NFS实现windows空间提供linux使用

    我们既然是要把Windows 的硬盘给Linux使用  就需要在Windows上安装NFS网络文件系统 操作如下 1.添加角色-----文件服务---勾选网络文件服务 2.安装完成后 我们需要把这30 ...

  10. dedecms 根据key取得联动类型(enum)值

    ---恢复内容开始--- //$key:如城市的ID,$enum_file  data/enums中的文件 function get_enum_data($key, $enum_file)    {  ...