C++string的使用
在这里总结一下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的使用的更多相关文章
- 透过WinDBG的视角看String
摘要 : 最近在博客园里面看到有人在讨论 C# String的一些特性. 大部分情况下是从CODING的角度来讨论String. 本人觉得非常好奇, 在运行时态, String是如何与这些特性联系上的 ...
- JavaScript String对象
本编主要介绍String 字符串对象. 目录 1. 介绍:阐述 String 对象的说明以及定义方式. 2. 实例属性:介绍 String 对象的实例属性: length. 3. 实例方法:介绍 St ...
- ElasticSearch 5学习(9)——映射和分析(string类型废弃)
在ElasticSearch中,存入文档的内容类似于传统数据每个字段一样,都会有一个指定的属性,为了能够把日期字段处理成日期,把数字字段处理成数字,把字符串字段处理成字符串值,Elasticsearc ...
- [C#] string 与 String,大 S 与小 S 之间没有什么不可言说的秘密
string 与 String,大 S 与小 S 之间没有什么不可言说的秘密 目录 小写 string 与大写 String 声明与初始化 string string 的不可变性 正则 string ...
- js报错: Uncaught RangeError: Invalid string length
在ajax请求后得到的json数据,遍历的时候chrome控制台报这个错误:Uncaught RangeError: Invalid string length,在stackoverflow查找答案时 ...
- c# 字符串连接使用“+”和string.format格式化两种方式
参考文章:http://www.liangshunet.com/ca/201303/218815742.htm 字符串之间的连接常用的两种是:“+”连接.string.format格式化连接.Stri ...
- 【手记】注意BinaryWriter写string的小坑——会在string前加上长度前缀length-prefixed
之前以为BinaryWriter写string会严格按构造时指定的编码(不指定则是无BOM的UTF8)写入string的二进制,如下面的代码: //将字符串"a"写入流,再拿到流的 ...
- JavaScript中String对象的方法介绍
1.字符方法 1.1 charAt() 方法,返回字符串中指定位置的字符. var question = "Do you like JavaScript?"; alert(ques ...
- 在多线程编程中lock(string){...}隐藏的机关
常见误用场景:在订单支付环节中,为了防止用户不小心多次点击支付按钮而导致的订单重复支付问题,我们用 lock(订单号) 来保证对该订单的操作同时只允许一个线程执行. 这样的想法很好,至少比 lock( ...
- BCL中String.Join的实现
在开发中,有时候会遇到需要把一个List对象中的某个字段用一个分隔符拼成一个字符串的情况.比如在SQL语句的in条件中,我们通常需要把List<int>这样的对象转换为“1,2,3”这样的 ...
随机推荐
- 1.7见识一下什么叫Linux驱动:LED
1.任何的Linux驱动都有一个装载函数(装载驱动时调用)和一个卸载函数(卸载驱动时调用): 2.装载函数和卸载函数分别通过module_init和module_exit宏指定.
- Android版年年有鱼游戏源码
具体的功能如下: 欢迎动画界面 ,游戏运行后首先进入的界面. 菜单的选择,游戏中还需要设计出菜单界面,菜单界面是玩家对游戏的第一印象,菜单界面的美观与否,直接决定着游戏的成功与失败. 游戏的音效,游戏 ...
- 使用OrderBy对List<Person>集合排序
string sortOrder = Request.QueryString["sortOrder"]; string sortField = Request.QueryStr ...
- C++ streambuf用法
class LogStreamBuf : public std::streambuf { public: // REQUIREMENTS: "len" must be >= ...
- 利用脚本设置本机IP地址
各位同学,在日常工作中.常出现需要指定IP的地址的清况.为了解决这一个问题,我特意为自己编写了一段脚本.方便设定自己笔记本的IP地址.供大家参考. 其中包括无线wifi和有线网络设定两个IP的操作. ...
- ContactsContract.CommonDataKinds【Translated By KillerLegend】
http://developer.android.com/reference/android/provider/ContactsContract.CommonDataKinds.html interf ...
- C# 验证IP是否正确简易方法 源代码
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- 国际制造执行系统(MES)应用与发展
某些专家认为,当今制造业的生存三要素是信息技术(IT).供应链管理(SCM)和成批制造技术.使用信息技术就是由依赖人工的作业方式转变为作业的快速化.高效化,大量减少人工介入,降低生产经营成本:供应链管 ...
- 下一代NoSQL:最终一致性的末日
相比关系型数据库,NoSQL解决方案提供了shared-nothing.容错和可扩展的分布式架构等特性,同时也放弃了关系型数据库的强数据一致性和隔离性,美其名曰:"最终一致性". ...
- 4.python中的用户交互
学习完如何写'hello world'之后,我们还是不太满意,因为这样代码就写死了,以后运行的时候都只打印一局固定的话而已. 但是,我想在程序运行后,自己手动输入内容怎么办,此时就要学习如何使用用户交 ...