字符数组即数组中的每一个元素是字符,在C++语言中字符型数组的应用很多:
(1)字符数组定义、引用及初始化
定义:char a[10];
此时定义了一个包含10个字符元素的字符数组。
初始化:
static char c[14]={‘I’ount is: "<<count<<'\n';
}
,在输入一行字符串后,统计其中有多少个单词,单词之间用一个或多个空格隔开。
标准的C++string类
string类的使用方法。
(1) string类有三个构造函数:
string str; //调用缺省的构造函数,建立空串
string str("OK"); //调用采用C字符串初始化的构造函数
string str(str1); //调用拷贝构造函数,str是str1的拷贝
建议使用C++的string类,它重载了几个运算符,连接、索引和拷贝等操作不必使用函数,使运算更加方便,而且不易出错。string类包含在名字空间std中。
#include<string>
using namespace std;
(2) string类字符元素的访问比C字符串有所增强:
str[i] //返回str中索引i处字符的引用,不查是否出界
(i) //返回str中索引i处字符的引用,查是否出界
(3) string类重载了一些运算符,特别注意当目标串较小,无法容纳新的字符串,系统会自动分配更多的空间给目标串,不必顾虑出界:
str1=str2; //str1成为str2的拷贝
str1+=str2; //str2的字符数据连接到str1的尾部
str1+str2; //返回一个字符串,它将str2连接到str1的尾部
str1==str2; str1!=str2; //比较串是否相等,返回布尔值
str1<str2; str1>str2; str1<=str2; str1>=str2;
//基于字典序的比较,返回布尔值
(4) string类的输入输出。输出与C风格字符串同样方便,使用插入运算符<<和cout。输入如用提取运算符>>,代码读取的是以空白字符结束的字符串,输入完整的字符串可用非成员函数getline,注意格式:
getline(cin,str); //串以’\n’结束
getline(cin,str,ch); //串以ch结束
(5) string类有一些常用的成员函数可进行字符串处理:
(pos,length1);
//返回对象的一个子串,从pos位置起,长length1个字符
( ); //查是否空串
(pos,str2); //将str2插入str的pos位置处
(pos,length1);
//在str位置pos处起,删除长度为length1的字串
(str1); //返回str1首次在str中出现时的索引
(str1,pos);
//返回从pos处起str1首次在str中出现时的索引
(str); //返回串长度
(6) C字符串到string类对象是由构造函数隐式自动进行,而string类对象到C字符串的转换必须执行显示的类型转换,应调用成员函数
( ); //将string类转换为C风格字符串,返回char*
回文是指顺读和反读都一样的串,这里不分大小写,并滤去所有非字母字符,如:
Madam,I’m Adam.
Golf,No Sir, prefer prison flog!
都是回文。
注意string是类,它有自己的构造函数和析构函数,如果它作为类或结构的成员,要记住它是成员对象,当整个类对象建立和撤销时,会自动调用作为成员对象的string字符串的构造和析构函数。
【】判断字符串是否为回文。
bool is_pal(const string& s){ //判断是否回文
string punct(",;:.?'\" "); //包括空格符
string str(make_lower(s));
str=remove_punct(str,punct); //滤去所有非字母字符
return str==reverse(str);}
string make_lower
C++stringppt课件 来自淘豆网m.daumloan.com转载请标明出处.