一、 初始化

    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. C/C++的类型安全

    类型安全很大程度上可以等价于内存安全,类型安全的代码不会试图访问自己没被授权的内存区域.“类型安全”常被用来形容编程语言,其根据在于该门编程语言是否提供保障类型安全的机制:有的时候也用“类型安全”形容 ...

  2. install composer on ubuntu14.04

    1.download composer $ sudo apt-get install curl $ curl -sS https://getcomposer.org/installer | php $ ...

  3. Codeforces Round #415 (Div. 2) 翻车啦

    A. Straight «A» time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  4. 【HTML/XML 2】XML基础知识点总结

    导读:刚开始看到这个名的时候,还以为会和HTML一样呢,结果看完了资料里的视频,才发现是各有千秋.现在,就对XML的基础知识,做一个总结. 一.总体概述 XML(Extensible Markup L ...

  5. Opencv学习笔记——视频高斯模糊并分别输出

    用两个窗口进行对比 #include "stdafx.h" #include <iostream> #include <opencv2/core/core.hpp ...

  6. POJ 2396 Budget ——有上下界的网络流

    给定矩阵的每行每列的和,和一些大于小于等于的限制.然后需要求出一组可行解. 上下界网络流. 大概的思想就是计算出每一个点他需要强行流入或者流出的量,然后建出超级源点和汇点,然后删除下界,就可以判断是否 ...

  7. [JSOI2008]最大数 (线段树)

    题目描述 现在请求你维护一个数列,要求提供以下两种操作: 1. 查询操作. 语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值. 限制:L不超过当前数列的长度.(L>=0 ...

  8. Generation I

    Generation I Oak is given N empty and non-repeatable sets which are numbered from 1 to N. Now Oak is ...

  9. UVa294 Divisors

    在一段区间[l,r]内,找出因数最多的数的个数以及其因数个数. 用唯一分解定理将一个数分解成质因数的乘积,例如 2^p1*3^p2*5^p3*7^p4*....  从这些质因数中任选出一些数相乘,都可 ...

  10. 标准C程序设计七---15

    Linux应用             编程深入            语言编程 标准C程序设计七---经典C11程序设计    以下内容为阅读:    <标准C程序设计>(第7版) 作者 ...