C++抽象编程——自定义strlib文件
来源:互联网 发布:罪夜之奔 知乎 编辑:程序博客网 时间:2024/06/05 10:08
今天回顾了一下我最近的C++学习,发现呢我是学了很多的处理问题的方法了。我特地看了一下字符串的总结。然后我把一些很常用的处理字符串的方法都写下来了。在我以往的博客中都可以看到它们。我把它们作为头文件跟实现文件,这样我们前短时间的接口就可以排上用场了,以后我会时不时的把以前的代码封装起来,变为自己的库
这次的库就是我们所谓的“strlib”,里面有去除字符串中的空格函数,有大小写转换。有字符串与数字之间的转换。这些我之前的博客全部都提到过。这次我只是总结一下。
strlib.h文件:
/**这个接口导出一些实用的字符串处理函数*/#ifndef _strlib_h#define _strlib_h/**函数:integerToString*用法:string str = integerToString(n)*----------------------*用途:将一串整型类的数字转换为字符串,例如字符串123*加100,结果为123100,但是转换为数字后就是223*/std::string integerToString(int n); /**函数:stringToInteger*用法:int n = stringToInteger(line)*----------------------*用途:将一串字符串转换为整型类的数字,以便用于运算*/int stringToInteger(std::string line);/**函数:realToString(d)*用法:string str = realToString(d)*----------------------*用途:将实数转变为字符串*/std::string realToString(double n);/**函数:stringToReal(line)*用法:int n = stringToReal(line)*----------------------*用途:将字符串转换为实数 */double stringToReal(std::string line);/**函数:toUpperCase*用法:string str = toUpperCase(line)*----------------------*用途:将字符串line中的所有字母转换为大写字母*当字符串中的元素不是字母的时候,就不转换*/std::string toUpperCase(std::string line);/**函数:toLowerCase*用法:string str = toLowerCase(line)*--------------------------*用途:将字符串line中的所有字母转换为小写字母*当字符串中的元素不是字母的时候,就不转换*/ std::string toLowerCase(std::string line);/**函数:startsWith*用法:if(startsWith(str,prefix)) *--------------------------*用途:判断字符串str 是不是以字符串prefix为前缀,是返回true*否则,返回false*/bool startsWith(std::string str, std::string prefix);/**函数: endsWith*用法: if(endsWith(str,suffix))*--------------------------*用途:断字符串str 是不是以字符串suffix为前缀,是返回true*否则,返回false */bool endsWith(std::string str, std::string suffix);/**函数:reverse*用法:string str = reverse(line)*--------------------------*用途:返回line的翻转后的字符串,比如字符串ABC*翻转后变为 CBA*/std::string reverse(std::string line);/**函数:removeSpaces*用法:string str = removeSpaces(line)*---------------------------*用途:返回删除空格后的一串字符串,功能类似于trim */std::string removeSpaces(std::string line);/*输出错误信息,并停止运行程序*/ void error(std::string msg);#endif
strlib.cpp文件:
#include <iostream>#include <fstream>#include <sstream> //string stream #include <cstdlib> //EXIT_FAILURE#include <string>#include <cctype>#include <algorithm>#include "strlib.h" using namespace std;void error(string msg){ cerr << msg << endl; exit(EXIT_FAILURE);}int stringToInteger(string str) { istringstream stream(str); int value; stream >> value >> ws; if (stream.fail() || !stream.eof()) { error("非法的整型转换"); return 0; } return value;}string integerToString(int n) { ostringstream stream; stream << n; return stream.str();}string toLowerCase(string line) { string result = ""; for (int i = 0; i < line.length(); i++) { line[i] = tolower(line[i]); result += line[i]; } return result; } string toUpperCase(string line) { string result = ""; for (int i = 0; i < line.length(); i++) { line[i] = toupper(line[i]); result += line[i]; } return result; } bool startsWith(string str, string prefix) { if (str.length() < prefix.length()) return false; for (int i = 0; i < prefix.length(); i++) { if (str[i] != prefix[i]) return false; } return true; } bool endsWith(string str, string suffix) { if (str.length() < suffix.length()) return false; for (int i = suffix.length()-1; i >= 0; i--) { if (str[i] != suffix[i]) return false; } return true; } string reverse(string line) { string rev = ""; for (int i = line.length() - 1; i >= 0; i--) { rev += line[i]; } return rev; } string removeSpaces(string line){ string::iterator it,it2; //迭代器2用于存入数据 string rev = ""; it = remove(line.begin(),line.end(),' ');/*移除空格,可以把空格换成你想要移除的元素*/ for(it2 = line.begin(); it2 != it; it2++){ //迭代自增 rev += *it2; } return rev;}
如果有不懂的我们可以一起探讨哦
0 0
- C++抽象编程——自定义strlib文件
- C#—抽象方法
- C语言——自定义头文件
- C#-—体验抽象函数
- raspberrypi——C多文件编程
- ANSI-C面向对象编程翻译:第一章 抽象数据类型——信息隐藏
- C专家编程 十六 抽象——取事物的本质特性
- C++抽象编程——面向对象(5)——最终版的point文件
- C++抽象编程——面向对象(8)——最终版的Rational文件
- C++抽象编程——回溯算法(2)——准备Direction文件
- C++抽象编程——接口(1)——.h文件与.cpp文件的建立
- java编程思想——抽象类
- C++抽象编程——完结感言
- C#——接口和抽象类
- C#——抽象类和接口
- 【C#】——抽象类VS接口
- C#——重写与抽象类
- C#—接口 PK 抽象类
- 关闭LOL等电脑进程小程序
- perl脚本文件的第一行用法
- 小型Java Web项目之DAO操作标准、DAO接口真实实现类、DAO代理实现类、DAO工厂
- Canvas之绘制图片与裁剪图片
- 45 个非常有用的 Oracle 查询语句
- C++抽象编程——自定义strlib文件
- 桶排序
- [李景山php]mysql 配置优化
- Problem B: 图形计数与求面积
- 淘宝技术牛人牛博客学习
- Python数据分析与挖掘实战—挖掘建模
- AngularJs内置服务$http
- java 中图形界面设计中 用不同按钮实现不同功能
- 算法笔记