C++程序设计的string类概要1.pptVIP

  • 12
  • 0
  • 约5.45千字
  • 约 19页
  • 2017-07-02 发布于湖北
  • 举报
C程序设计的string类概要1

5.6.2 标准的C++string类 (4) string类的输入输出。输出与C风格字符串同样方便,使用插入运算符和cout。输入如用提取运算符,代码读取的是以空白字符结束的字符串,输入完整的字符串可用非成员函数getline,注意格式: getline(cin,str); //串以’\n’结束 getline(cin,str,ch); //串以ch结束 (5) string类有一些常用的成员函数可进行字符串处理: str.substr(pos,length1); //返回对象的一个子串,从pos位置起,长length1个字符 str.empty( ); //查是否空串 str.insert(pos,str2); //将str2插入str的pos位置处 str.remove(pos,length1); //在str位置pos处起,删除长度为length1的字串 str.find(str1); //返回str1首次在str中出现时的索引 str.find(str1,pos); //返回从pos处起str1首次在str中出现时的索引 str.length(str); //返回串长度 (6) C字符串到string类对象是由构造函数隐式自动进行,而string类对象到C字符串的转换必须执行显示的类型转换,应调用成员函数 str.c_str( ); //将string类转换为C风格字符串,返回char* 回文是指顺读和反读都一样的串,这里不分大小写,并滤去所有非字母字符,如: Madam,I’m Adam. Golf,No Sir, prefer prison flog! 都是回文。 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(const string s){ //所有大写改为小写 string temp(s); int i,s_length=s.length(); for(i=0;is_length;i++) temp[i]=tolower(s[i]); return temp;} void swap(char ch1,char ch2){ //交换两个字符 char temp=ch1; ch1=ch2; ch2=temp;} string reverse(const string s){ //返回反转的字符串 int start=0,end=s.length(); string temp(s); while(startend){ end--;swap(temp[start],temp[end]);start++; } return temp;} string remove_punct(const string s,const string punct){ string no_punct; //放置处理后的字符串 int i,s_length=s.length(),p_length=punct.length(); for(i=0;is_length;i++){ string a_ch=s.substr(i,1); //单字符string int location=punct.find(a_ch,0);//从头查找a_ch在punct中出现的位置 if(location0||location=p_length) no_punct=no_punct+a_ch; //punct中无a_ch,a_ch拷入新串 } return no_punct; } //将第一个字符串中所包含的与第二个字符串中相同的字符删去 int main( ) { string str; cout请输入需判断是否为回文的字符串,以回车结束。\n; getline(cin,str); if(is_pal(str)) coutstr是回文。\n; else coutstr不是回文。\n; return 0; } * * 字符数组即数组中的每一个元素是字符,在C++语言中字符型数组的应用很多: (1)

文档评论(0)

1亿VIP精品文档

相关文档