string通用函式

2021-07-23 04:39:34 字數 3227 閱讀 7702

這篇博文乙個月前就想寫了,但是拖到現在才有時間。

起因是要做乙個公司的專案,這個專案是用mfc寫的,其實底層實現大多數都是用的標準庫,但是讓我比較尷尬的是我不會mfc,於是就想把介面和底層剝離,用qt來設計介面。

別的還好說,最蛋疼的就是這個專案裡用大量的cstring變數以及相關函式,沒辦法我就替換這些函式,這就是背景,廢話少說,直接上**:

//宣告

namespace

cstirng2string

;

#include "stdafx.h"

#include

#include

#include

#include

#include "generalfuns.h"

void string_genral::strupper(string& str)

void string_genral::strlower(string& str)

void string_genral::trimleft(string& str)

void string_genral::trimright(string& str)

void string_genral::trimleft(string& str, const

char* c)

; string::iterator iter;

if (c == null)

else

str.erase(iter);}}

return;

}void string_genral::trimright(string& str, const

char* c)

; string::iterator iter;

if (c == null)

else

str.erase(iter);}}

return;

}int string_genral::deletechar(string& str,char ch)

bool string_genral::startwith(const

string& str,const

string& strstart)

return str.compare(0,strstart.size(),strstart)==0?true:false;

}bool string_genral::endwith(const

string& str,const

string& strend)

return str.compare(str.size()-strend.size(),strend.size(),strend)==0?true:false;

}void string_genral::replace_all(string& str, string _old, string _new)

str.replace(str.find(_old), _old.size(), _new);

return replace_all(str, _old, _new);

}string string_genral::left(string src, unsigned

int _offset)

iter += _offset;

return dst;

}string string_genral::right(string src, size_t _offset)

iter = src.end() - _offset;

return rst;

}//已驗證

int string_genral::remove(string& str, size_t nindex, size_t ncount /* = 1 */)

return str.size() - ncount;

}return -1;

}//已驗證

int string_genral::insert(string& str, size_t nindex, string& sub)

for (int i = 0; i< sub.size() ; i++)

return str.size();

}int string_genral::insert(string& str, size_t nindex, const

char* sub)

for (int i = 0; i < strlen(sub); i++)

return str.size();

}//已驗證

int string_genral::format(string& str, const

char* format_str, ...)

; va_list _arglist;

va_start(_arglist, format_str);

rst = vsprintf(_c, format_str, _arglist);

va_end(_arglist);

str = _c;

return rst;

}int string_genral::findoneof(string str, const

char* c)

; string::iterator iter;

if (c == null)

iter = str.begin();

for(int i = 0; i < str.size() ;i++)

}return

string::npos;

}//已驗證

string string_genral::spanincluding(string &str, const

char* sub)

; string rslt("\0");

for(int i = 0; i0] = str.at(i);

if (strstr(sub, _c) != null)

}return rslt;

}int string_genral::copy(string& des, string src)

//已驗證

int listget(list

_list, size_t nindex)

iter = _list.begin();

advance(iter, nindex);

rslt = *iter;

return rslt;

}

C 通用函式 過濾string的空行

需要過濾string中的空行,可以網上搜尋未果。最終自己寫了乙個較為通用的函式。輸入s表示要過濾的string lineend表示行結束符,不同平台的行結束符可能不同。win和linux是nl lf n mac平台則以cr r 結尾。std string deletespacelineofstr c...

Oracle 通用函式

to date 功能 字元型資料到日期型資料轉換 格式 to date 引數一,fmt 引數一 字串型資料 引數二 格式元素 yyyy,year,dd,month等 例如 根據員工的入職日期 2月 22 1981 檢視員工的資訊 分析 日期格式應用 22 2月 1981 select ename,h...

Oracle 通用函式

這些函式適用於任何資料型別,同時也適用於空值 nvl 函式 nvl expr1,expr2 expr1為null,返回expr2,否則返回expr1。nvl2 函式 nvl2 expr1,expr2,expr3 expr1不為null,返回expr2 expr1為null,返回expr3。nulli...