C++学习记录11--字符串中删除特定元素
来源:互联网 发布:淘宝图标高清图片 编辑:程序博客网 时间:2024/05/09 19:50
#include<iostream>#include<string.h>#include<string>using namespace std;//String类写法,注意需要引用传递,否则string类定义的为值传递void deletechar(string &a){ int len=a.size(); for(int i=0;i<len;i++) { bool flag=(a[i]>='0'&&a[i]<='9'||a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z'); //保留字符串中的数字,大小写字母 if(!flag) { a.erase(i,1); len=a.size(); i--; } }}//char处理方法void deletechar(char a[]){ int len=strlen(a); for(int i=0;i<len;i++) { bool flag=(a[i]>='0'&&a[i]<='9'||a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z'); //保留字符串中的数字,大小写字母 if(!flag) { for(int j=i;j<len;j++) a[j]=a[j+1]; len=strlen(a); i--; } }}void main(){ char a[100]; cin.getline(a,100); string e=a; //=重定义过,可由字符串直接赋值给string类。 deletechar(e); //利用string类处理,string比用用引用传递才可双向传输 deletechar(a); //利用字符串处理 cout<<a<<endl; cout<<e<<endl;}
用string类处理字符串更为方便,这是C++相对于C语言的优势,即不用处理繁琐的结束符,且string类中有各种成员函数来处理字符串,很方便。
比较可以看出,string类和用char来处理
a.erase(i,1);
代替了:
for(int j=i;j<len;j++) a[j]=a[j+1];
此外,if语句中的
len=strlen(a); i--;
也十分重要。
0 0
- C++学习记录11--字符串中删除特定元素
- C语言删除特定元素
- 删除特定字符串(c语言)
- C语言删除特定字符串
- C语言实现删除字符串中特定的字符
- 删除字符串中特定字符
- 字符串中删除特定字符
- 删除文件中特定字符串
- [算法学习]在字符串中删除特定的字符
- vector中特定元素的删除
- vector中特定元素的删除
- List循环中删除特定元素
- PHP 删除数组中特定元素
- java中集合中删除特定元素
- 在字符串中删除特定的字符
- 在字符串中删除特定的字符
- 在字符串中删除特定的字符
- 在字符串中删除特定的字符
- A
- Java之计算上学期的平均学分绩点
- JS上下自动漂浮广告,可关闭
- Proteus仿真AT89C52——多机通讯
- 康拓排列--全排列的解码与编码
- C++学习记录11--字符串中删除特定元素
- Codeforces 140A New Year Table(大圆带小圆)
- Spring的核心容器Bean的基础知识(三)
- Scala学习——核心概念
- mysql 利用event定时调用存储过程
- Robotframework环境搭建四:项目资源管理
- 华为校招一道上机题:等式变换
- bzoj3191: [JLOI2013]卡牌游戏
- 设置必要的Meta标签