一、 初始化

    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. sublime text 3搭建python 的ide

    感谢大佬-->原文链接 1. 打开Sublime text 3 安装package control Sublime Text 3 安装Package Control 2. 安装 SublimeR ...

  2. apk 解包 打包

    APK应用程序的解包.修改.编辑.汉化.打包及应用 前两讲主要讲玩机的最基本的知识,集中在如何刷机.本讲是进级的内容,来谈谈与apk应用程序有关的知识,内容包括akp文件的解包.打包.反编辑.解析.汉 ...

  3. luogu2050 [NOI2012]美食节

    修车加强版 边跑边加,有个师傅做到第 i 个(相对他自己而言),就给他加到 i+1 个. #include <iostream> #include <cstring> #inc ...

  4. webforms字典参数处理

    当webforms参数中的value是一个字典时,加上‘’即可正常传参.

  5. c语言头文件以及make注意事项

    c语言头文件以及make注意事项 头文件说明:自己定义的头文件和项目文件放在一起,注意使用""而不是使用<>,系统的头文件才使用<> 当main函数要调用其 ...

  6. Leetcode 336.回文对

    回文对 给定一组唯一的单词, 找出所有不同 的索引对(i, j),使得列表中的两个单词, words[i] + words[j] ,可拼接成回文串. 示例 1: 输入: ["abcd&quo ...

  7. Leetcode 334.递增的三元子序列

    递增的三元子序列 给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列. 数学表达式如下: 如果存在这样的 i, j, k,  且满足 0 ≤ i < j < k ≤ n- ...

  8. POJ 1606 Jugs

    Jugs Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4280   Accepted: 2533   Special Ju ...

  9. iOS代理转移

    在控制器里面想调用一个视图的子视图的代理方法很简单 1.找到子视图的协议和代理属性 2.给你想调用的控件添加代理属性,遵守的协议和子视图的一样 3.重写代理属性的set方法

  10. [BZOJ1596] [Usaco2008 Jan]电话网络(树形DP || 贪心)

    传送门 1.树形DP #include <cstdio> #include <cstring> #include <iostream> #define N 1000 ...