C++11中有個字符串類std::string,OpenCV開發(fā)中你遇到所有關于字符串的問題,都可以通過這個類來解決。特別好用!
相關函數(shù)說明
首先看一下這個類比較有用的函數(shù)操作都有哪些:
字符串進入的相關函數(shù):
字符串內容修改的相關函數(shù):
字符串操作的相關函數(shù):
用法演示
用法演示涵蓋各種字符串常編程應用包括檢查文件擴展名稱、截取,查找字符串、拼接字符串、把這種其它類型數(shù)據(jù)轉換為字符串std::tostring這個方法是萬能的。演示代碼如下:
// 初始化字符串
std::string mystr("this is OpenCV學堂 ");
std::string by = "created by gloomyfish";
std::cout << mystr << std::endl;
// 拼接字符串,計算長度
std::string str2 = mystr + by;
for (int i = 0; i < 4; i++) {
str2.append("!");
}
std::cout << str2 << std::endl;
std::cout << "str2's length: "<<str2.length()<< std::endl;
// 尋找字符串
int pos = mystr.find("學堂", 0);
std::cout << "位置:"<<pos << " 截取: " <<mystr.substr(pos, 4)<<std::endl;
// 檢查圖象文件擴展名稱
std::string lena = "D:/images/lena.jpg";
int t = lena.find_last_of('.');
std::string extName = lena.substr(t + 1);
if (extName == "jpg") {
std::cout << lena << std::endl;
}
// 字符串各種拼接,把數(shù)值轉換為字符串, std::tostring是萬能方法
std::string mystr3 = mystr + std::to_string(12.3344);
std::cout << mystr3 << std::endl;
檢查字符串中都是數(shù)字與返回浮點數(shù)部分函數(shù),利用字符串操作完成:
string returnFloatingPart(string str)
{
int pos = str.find(".");
if (pos == string::npos)
return "";
else
return str.substr(pos + 1);
}
bool containsOnlyDigit(string str)
{
int l = str.length();
for (int i = 0; i < l; i++)
{
if (str.at(i) < '0' || str.at(i) > '9')
return false;
}
// if we reach here all character are digits
return true;
}