/*
*程序名称:CppString
*程序描述:C++标准库string类型
*编写时间:2012122
*/
#include <iostream>
#include <string>
#include <cctype>
using std::cout;
using std::cin;
using std::endl;
using std::string;
/**************************************************************************************
*string:支持长度可变的字符串,
*初始化string对象的方式:
* 1.string s1; 默认构造函数,s1为空串,没有明确指定对象初始化时默认使用
* 2.string s2(s1); 将s2初始化为s1的副本
* 3.string s3("value"); 将s3初始化为一个字符串字面值副本
* 4.string s4(n,'c'); 将s4初始化为字符'c'的n个副本
*string对象的操作:
* 1.s.empty() 如果s为空串,周日返回true,否则返回false;
* 2.s.size() 返回s中字符串的个数;
* 3.s[index] 返回s中位置为index的字符,位置从0开始计数
* 4.s1 + s2 把s1和s2连接成一个新的字符串,返回新的字符串;
* 5.s1 == s2 比较s1和s2的内容,相等则返回true,否则返回false;
* 6.s1 = s2 把s1的内容替换为s2的副本;
*
*string对象中的字符的处理:注意是字符的处理,不是字符串
* 1.isalpha(c) 如果c是字母,则为true
* 2.isdigit(c) 如果c是数字,则为true
* 3.islower(c) 如果c是小写字母,则为true
* 4.isupper(c) 如果c是大写字母,则为true
* 5.isspace(c) 如果c是空白字符,则为true
* 6.ispunct(c) 如果c是标点符号,则为true
* 7.tolower(c) 如果c是大写字母,则返回其小写字母形式,否则直接返回c
* 8.toupper(c) 如果c是小写字母,则返回其大写字母形式,否则直接返回c
*以上各种操作函数在标准库cctype中定义。
*
*注意:
* 1.字符串字面值与标准库string类型不是同一种类型。
* 2.size()成员函数返回的类型并不是整型数值,而是string::size_type类型的值,不要把它的返回值赋值给int型的变量
* 3.空白字符指空格、制表符、垂直制表符、回车符、换行符中的任意一种。
* 4.标点符号指除了数字、字母、空白符以外的其它可打印的字符。
* 5.C标准库头文件命名形式为name.h,面C++标准库头文件命名形式为cname,C++中的头文件名在C的基础上加了c,并去掉了后缀.h,c表示这个头文件源自C标准库。
**************************************************************************************/
int main()
{
string s1,s2,s3,s4,s5,s6;
s1 = "嘿";
s2 = "您好!";
s3 = s1 + s2;
//编译不过,字符串字面量值不可以直接使用连接操作符,两边至少要有一个是字符串对象
//s4 = "嘿" + "您好!";
s4 = s1 + "," + s2;
//可以编译,s1 + "," 会组成一个新的字符串对象,再跟"您好!"进行连接
s5 = s1 + "," + "您好!";
s6 = "abcdefg";
cout << s6[1]; //b
cout << isalpha(s6[1]); //
cout << isdigit(s6[1]); //
}