博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对string的一些扩展函数 分类: C/C++ 2...
阅读量:4966 次
发布时间:2019-06-12

本文共 2818 字,大约阅读时间需要 9 分钟。

对string作了一些扩展,包括string转化为int、string转化为double、string转化为bool、打印系统当前时间。但没有解决数据溢出的问题,请大神帮忙解决!

//头文件/*part of interface about string; *it follow the function simply ,no complex situation exist; *so it should be modify before you use it; *overflow problem is need to be solved; */#ifndef FSTRING#define FSTRING#include 
#include
#include
using namespace std;//declareextern bool stringToBoolValid;extern bool stringToIntValid;extern bool stringToDoubleValid;//split the string with delim,default delim is ' 'bool split(vector
& ,const string str,const char delim=' ');//convert string to intint stringToInt(const string& );//convert string to doubledouble stringToDouble(const string& );//convert string to boolbool stringToBool(const string& );//print current time of this systembool printSystemTime(ostream& output=cout);//delete spacevoid deleteSpace(string& str);
#endif //FSTRING
//源文件#include "fstring.h"#include 
#include
//definitionbool stringToBoolValid=true;bool stringToIntValid=true;bool stringToDoubleValid=true;//分割字符串函数bool split(vector
& vecStr,const string str,const char delim){//如果所需要要转化的字符串为空,则直接返回 if(str.empty()) return false; size_t i=0; string subStr; subStr.clear(); while(i
'9') { stringToIntValid=false; returnInt=0; return returnInt; } returnInt=returnInt*10+str[i]-'0'; }//如果只有一个正号或负号,输出也是零 if(flagPlusMinus) returnInt*=(-1); return returnInt;}double stringToDouble(const string& str)//转化成浮点数{ if(str.empty()) { stringToDoubleValid=false; return 0; } double returnDouble(0); size_t i=0; size_t flag=2000; int NumPoint=0;//小数点出现次数 int decimalNum(0); bool flagPlusMinus=0; if(str[0]=='+') { i++; } else if(str[0]=='-') { i++; flagPlusMinus=1; } for(;i
1) { stringToDoubleValid=true; returnDouble=0; return returnDouble; } flag=i; continue; } else if(str[i]<'0' || str[i]>'9') { stringToDoubleValid=true; returnDouble=0; return returnDouble; } if(i>flag) { decimalNum++; } returnDouble=returnDouble*10+str[i]-'0'; } for(int t=0;t
1 || str.empty()) { stringToBoolValid=false; return 0; } if(str=="1") return 1; else return 0; }bool printSystemTime(ostream& output){ time_t currentTime=time(0); struct tm* currentTimeStruct=localtime(¤tTime); output<<"系统当前时间:"<<1900+currentTimeStruct->tm_year<<"."<< currentTimeStruct->tm_mon+1<<"."<
tm_mday<<" "<< currentTimeStruct->tm_hour<<":"<
tm_min<<":"<< currentTimeStruct->tm_sec<
 
void deleteSpace(string& str){//删除表达式中的空格	string::iterator iter = str.begin();	while (iter != str.end())	{//注意删除后,迭代器指向被删除元素的下一个元素		if (*iter == ' ')		{			iter = str.erase(iter);		}		else			iter++;	}}

转载于:https://www.cnblogs.com/zclzqbx/p/4687121.html

你可能感兴趣的文章
【iCore3双核心板】发布 iCore3 硬件手册!
查看>>
Leetcode Word Break
查看>>
css性质
查看>>
python数据结构
查看>>
正则指引-括号(3)反向引用
查看>>
android开发读书笔记
查看>>
Gitlab配置、备份、升级、迁移
查看>>
dataTable.NET的search box每輸入一個字母進行一次檢索的問題
查看>>
Python 文件处理
查看>>
邻接表详解
查看>>
android,radio,checkbox
查看>>
[转](.NET Core C#) AES Encryption
查看>>
[转]EntityFramework中常用的数据修改方式
查看>>
[转]SQL Collation冲突解决 临时表
查看>>
[转]Gitlab-CI持续集成之Runner配置和CI脚本
查看>>
Spark&Hive结合起来
查看>>
使用Flex和java servlet上传文件
查看>>
软件工程的实践项目课程的自我目标
查看>>
POJ 1321 棋盘问题 (深搜)
查看>>
自定义TabBar
查看>>