對string作了一些擴充套件,包含string轉化為int、string轉化為double、string轉化為bool、列印系統當前時間。但沒有解決資料溢位的問題,請大神幫忙解決!
//標頭檔案
/*part of inte***ce 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;
//declare
extern 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 int
int stringtoint(const string& );
//convert string to double
double stringtodouble(const string& );
//convert string to bool
bool stringtobool(const string& );
//print current time of this system
bool printsystemtime(ostream& output=cout);
//delete space
void deletespace(string& str);
#endif //fstring
//原始檔
#include "fstring.h"
#include #include //definition
bool stringtoboolvalid=true;
bool stringtointvalid=true;
bool stringtodoublevalid=true;
//切割字串函式
bool split(vector& vecstr,const string str,const char delim)
returnint=returnint*10+str[i]-'0';
}//假設僅僅有乙個正號或負號,輸出也是零
if(flagplusminus)
returnint*=(-1);
return returnint;
}double stringtodouble(const string& str)//轉化成浮點數
double returndouble(0);
size_t i=0;
size_t flag=2000;
int numpoint=0;//小數點出現次數
int decimalnum(0);
bool flagplusminus=0;
if(str[0]=='+')
else if(str[0]=='-')
for(;i1)
flag=i;
continue;
} else if(str[i]<'0' || str[i]>'9')
if(i>flag)
returndouble=returndouble*10+str[i]-'0';
} for(int t=0;t1 || str.empty())
if(str=="1")
return 1;
else
return 0;
}bool printsystemtime(ostream& output)
else
iter++;
}}
String一些函式的用法
1 substring 用法 這個函式返回第乙個引數中從第二個引數指定的位置開始 第三個引數指定的長度的子字串。該字串中的每個字元都被認為具有數字位置 第乙個字元的位置是 1,第二個字元的位置是 2,依此類推。如果未指定第三個引數,將返回從第二個引數指定的位置開始直到字串結尾的子字串。如果引數不是字...
string類的一些成員函式
1 const char data data 函式返回指向自己的第乙個字元的指標.由於data 函式返回的是const char 所以不能直接通過指標修改返回的字串的值,如果要修改,必須把型別轉化為char 2 const char c str c str 函式返回乙個指向正規c字串的指標,內容與本...
對指標的一些 運算(自行擴充套件 )
指標運算 include using namespace std int main int p a 注釋為意料輸出 cout p p 疑惑 使用電腦進行執行時出現第乙個是1 0輸出,但是用手機編譯器卻能得到意料中的結果。型別1 對於 與字尾 運算子,字尾 的運算子高於 對於兩符號在變數名左右兩邊 一...