C++11中有個(gè)字符串類std::string,OpenCV開(kāi)發(fā)中你遇到所有關(guān)于字符串的問(wèn)題,都可以通過(guò)這個(gè)類來(lái)解決。特別好用!
相關(guān)函數(shù)說(shuō)明
首先看一下這個(gè)類比較有用的函數(shù)操作都有哪些:
字符串進(jìn)入的相關(guān)函數(shù):
字符串內(nèi)容修改的相關(guān)函數(shù):
字符串操作的相關(guān)函數(shù):
用法演示
用法演示涵蓋各種字符串常編程應(yīng)用包括檢查文件擴(kuò)展名稱、截取,查找字符串、拼接字符串、把這種其它類型數(shù)據(jù)轉(zhuǎn)換為字符串std::tostring這個(gè)方法是萬(wàn)能的。演示代碼如下:
// 初始化字符串
std::string mystr("this is OpenCV學(xué)堂 ");
std::string by = "created by gloomyfish";
std::cout << mystr << std::endl;
// 拼接字符串,計(jì)算長(zhǎng)度
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("學(xué)堂", 0);
std::cout << "位置:"<<pos << " 截取: " <<mystr.substr(pos, 4)<<std::endl;
// 檢查圖象文件擴(kuò)展名稱
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ù)值轉(zhuǎn)換為字符串, std::tostring是萬(wàn)能方法
std::string mystr3 = mystr + std::to_string(12.3344);
std::cout << mystr3 << std::endl;
檢查字符串中都是數(shù)字與返回浮點(diǎn)數(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;
}