一、 初始化

    string s1="i love you";
string s2(s1); //把s2初始化为string s1,注意不能写成string s2; s2(s1);
string s3("value"); //将s3初始化一个c类型的字符串
string s4(,'s'); //将s4初始化为6个字符‘s'
/*注意字符串面值与标准库string不是同一个类型*/
cout<<s1<<endl;
cout<<s2<<endl;
cout<<s3<<endl;
cout<<s4<<endl;

二、输入

    string s6;
getline(cin,s6);//输入带有空格的字符串,测试“ hello world ”
cout<<s6<<endl;
  cout<<"------------------------------"<<endl;
string s5;
cin>>s5;//输入不带空格的字符串 “ hello world ”测试,发现只读取有效字符到遇到空格结束
cout<<s5<<endl;
//故意把s5和s6倒过来,如果先用cin输入s5,再用getline(cin,s6)会有问题。

三、访问字符

    cout<<s1.at()<<endl;//at函数提供范围检查,当越界时会抛出out_of_range异常,
cout<<s1[]<<endl;//下标运算符[]不提供检查访问。

四、特性描述

1.判断是否为空

s1.empty()

2.长度

  string s1="";
  cout<<s1.length()<<endl;//.length()和.size()没区别,用哪个都行
  cout<<s1.size()<<endl;//size()代表它是个容器,length()体现它是字符串

3.重新定义它的长度(多去少补)

    string s1="";
cout<<s1<<endl;
cout<<s1.size()<<endl;//.length()和.size()没区别,用哪个都行
s1.resize();//多去
cout<<s1<<endl;
cout<<s1.size()<<endl;
s1.resize(,'x');//少补,不写第二个参数也可以
cout<<s1<<endl;
cout<<s1.size()<<endl;

五、赋值

    string s1="";
string s3="";
char s2[]="";
cout<<s1<<endl;
s1="aaa";
cout<<s1<<endl;
s1.assign(s3);//assign里可以是c类型的字符串,也可以是string字符串
cout<<s1<<endl;
s1.assign(s2,);//前n个字符赋值,这种第一个参数只能是c类型的字符串
cout<<s1<<endl;
s1.assign(,'c');//n个字符赋给当前字符串
cout<<s1<<endl;
s1.assign(s3,,);//把字符串(可以是c类型的也可以是string)中从start开始的n个字符赋给当前字符串
cout<<s1<<endl;

六、连接

    string s1="";
string s3="";
char s2[]="";
cout<<s1<<endl;
s1+=s3;
cout<<s1<<endl;
s1.append("bb");//里面可以是c类型的字符串,也可以是string
cout<<s1<<endl;
s1.append(s3,,);//把字符串s3中从2的3个字符连接到当前字符串的结尾,也可以是c类型的字符串
cout<<s1<<endl;
s1.append(,'c');//把n个字符连接到当前字符串后
cout<<s1<<endl;
s1="aaa",s3="bbb";
string s4=s1+s3;
cout<<s4<<endl;

六、比较

  string s1="aaa";
string s2="aaa";
string s3="bbb";
if(s1==s2)
cout<<"相等"<<endl;
else
cout<<"不相等"<<endl;
if(s1==s3)
cout<<"相等"<<endl;
else
cout<<"不相等"<<endl;
//另外,运算符">","<",">=","<=","!="均被重载用于字符串的比较
if(s1>s3)
cout<<"s1>s3"<<endl;
else
cout<<"s1<s3"<<endl;
cout<<s3.compare(s1)<<s1.compare(s3)<<s1.compare(s1)<<endl;//比较s1和s3的大小,小于返还-1,大于返还1,等于返回0

七、子串

    string s1="";
string s2=s1.substr(,);//返回2开始的3个字符组成的字符串
cout<<s2<<endl;

八、交换

    string s1="12345678";
string s2="abcd";
s1.swap(s2);
cout<<s1<<endl;
cout<<s2<<endl;

  

xxxxxxxxxxxx

主要参考 还没有写完

http://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html

http://blog.csdn.net/y990041769/article/details/8763366

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

  1. Java-集合-第三题 有如下Student 对象, private String name; private int age; private int score; private String classNum; 其中,classNum 表示学生的班号,例如“class05”。 有如下List List list = new ArrayList(); l

    第三题 有如下Student 对象, private String name; private int age; private int score; private String classNum; ...

  2. 第三题 有如下Student 对象, private String name; private int age; private int score; private String classNum; 其中,classNum 表示学生的班号,例如“class05”。 有如下List List list = new ArrayList();

    list.add(new Student("Tom", 18, 100, "class05")); list.add(new Student("Jer ...

  3. [BTS] Error biztalk arguments null exception string reference not set to an instance of a string. parameter name

    biztalk arguments null exception string reference not set to an instance of a string. parameter name ...

  4. String详解, String和CharSequence区别, StringBuilder和StringBuffer的区别 (String系列之1)

    本章主要介绍String和CharSequence的区别,以及它们的API详细使用方法. 转载请注明出处:http://www.cnblogs.com/skywang12345/p/string01. ...

  5. 已知有一个Worker 类如下:  public class Worker  { private int age;  private String name;  private double salary;  public Worker (){}  public Worker (String nam

    package homework006; public class Worker { private int age; private String name; private double sala ...

  6. 有如下Student 对象,  private String name;       private int age;       private int score;   private String classNum;  其中,classNum

    package homework003; import java.util.ArrayList; import java.util.List; public class Text { public s ...

  7. 第三题 有如下Student 对象,  private String name;       private int age;       private int score;   private String classNum;  其中,classNum&

    //Student package zuoye; public class Student { private String name; private int age; private int sc ...

  8. 将String转化成Stream,将Stream转换成String

    using System;using System.IO;using System.Text;namespace CSharpConvertString2Stream{     class Progr ...

  9. getParameterMap()的返回值为Map<String, String[]>,从其中取得请求参数转为Map<String, String>的方法如下:

    直接遍历报错:[Ljava.lang.String;@44739f3f Map<String, String> tempMap = new HashMap<String, Strin ...

  10. js中String.prototype.format類似于.net中的string.formitz效果

    String.prototype.format = function(args) { if (arguments.length>0) { var result = this; if (argum ...

随机推荐

  1. Knockout v3.4.0 中文版教程-1-入门和安装

    英文原版教程:http://knockoutjs.com/documentation/introduction.html 注:此教程根据英文原版翻译,仅作练习,如有不足或错误,请指正 说明: 对原文中 ...

  2. Exchange 邮件服务器内存硬盘估算

  3. map 插入数据的方式局别

    #include<map> #include<iostream> usingnamespace std; int main() { map <int, int> m ...

  4. ffmpeg常见名词解析

    scan_all_pmts, 扫描全部的ts流的"Program Map Table"表.

  5. 九度oj 题目1153:括号匹配问题

    题目描述: 在某个字符串(长度不超过100)中有左括号.右括号和大小写字母:规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配.写一个程序,找到无法匹配的左括号和右括 ...

  6. Java&Android代码规范

    项目中直接导入Square的代码风格文件.(不导入Google的原因是Square同时提供了Java和Android两套统一风格,Google只提供了一套) Square Code Styles Go ...

  7. javascript数组学习1

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  8. BZOJ 3205 [Apio2013]机器人 ——斯坦纳树

    腊鸡题目,实在卡不过去. (改了一下午) 就是裸的斯坦纳树的题目,一方面合并子集,另一方面SPFA迭代求解. 优化了许多地方,甚至基数排序都写了. 还是T到死,不打算改了,就这样吧 #include ...

  9. 手把手教你搭建DHCP服务器

    目录 DHCP实现原理 DHCP定义 DHCP分配方式 DHCP工作过程 初次登录 重新登录 更新租约 搭建DHCP服务器 实验目的 实验环境 实验步骤 实验结果 DHCP实现原理 DHCP定义 DH ...

  10. KVM 存储虚拟化

    KVM 的存储虚拟化是通过存储池(Storage Pool)和卷(Volume)来管理的. Storage Pool 是宿主机上可以看到的一片存储空间,可以是多种类型,后面会详细讨论.Volume 是 ...