您的位置:首页 > 编程语言 > C语言/C++

C++标准库类型——string

2014-06-26 03:00 417 查看
除了基本的数据类型(int double 。。。),C++还定义了一个内容丰富的抽象数据类型的标准库。其中最重要的标准库类型是string和vector,它们分别定义了大小可变的字符串和集合。string和vector往往将迭代器用作配套类型,用于访问string中的字符,或者vector中的元素。这一篇介绍一下string,下一篇再介绍vector。

标准库string类型

string类型支持长度可变的字符串,C++标准库将负责管理与存储字符相关的内存,以及提供各种有用的操作。标准库string类型的目的就是满足对字符串的一般应用。

与其他的标准库类型一样,用户程序要使用string类型对象,必须包含相关的头文件。

#include<string>

using std::string;

string对象的操作

s.empty() 如果s为空串,则返回true,否则 返回false

s.size() 返回s中字符的个数

s
返回s中位置为n的字符,位置从0开始计数

s1+s2 将s1和s2连接成一个新的字符串,返回新生成的字符串

v1 == v2 比较v1和v2中的内容是否相等

!=,<,<=,>,>= 保持这些操作符惯有的含义

实例:

// stringtest.cpp : 定义控制台应用程序的入口点
#include "stdafx.h"
#include <Windows.h>
#include <string>
using std::string;
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
string s0;//默认构造函数 s0为空串
cout<<"0:"<<s0<<endl;
cout<<"1:"<<s0.empty()<<endl;//s.empty()
string s00(s0);//将s00初始化为s0的一个副本
cout<<"2:"<<s00<<endl;
string s1("shufac");//将s1初始化为一个字符串(shufac)字面值副本
cout<<"3:"<<s1<<endl;
cout<<"4:"<<s1.size()<<endl;//s.size() 返回值为unsigned
string s2(s1);//将s2初始化为s1的一个副本
cout<<"5:"<<s2<<endl;
int n=4;
string s3(n,'c');//将s3初始化为字符‘c’的4个副本
cout<<"6:"<<s3<<endl;
string s4(6,'c');//将s3初始化为字符‘c’的4个副本
cout<<"7:"<<s4<<endl;
cout<<"8:"<<s1+s4<<endl;//字符串拼接
cout<<"9:"<<s1[3]<<endl;//s
'f'
string s5="Hello!";//对象赋值
cout<<"10:"<<s5<<endl;
string s6="Hello World!";//对象赋值
cout<<"11:"<<s6<<endl;
string s7=s5+",,,"+s6+"\n";//两个string 对象相加
cout<<"12:"<<s7<<endl;
//从string对象获取字符
string str("some string");
for (string::size_type ix=0;ix !=str.size();++ix)
{
int x=12+ix;
cout<<x<<":"<<str[ix]<<endl;
}

//string 对象的操作
/*
s.empty()  如果s为空串,则返回true,否则 返回false
s.size()   返回s中字符的个数
s
返回s中位置为n的字符,位置从0开始计数
s1+s2	   将s1和s2连接成一个新的字符串,返回新生成的字符串
v1 == v2   比较v1和v2中的内容是否相等
!=,<,<=,>,>=   保持这些操作符惯有的含义
*/
system("pause");
return 0;
}


运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: