C++字符串的截取問(wèn)題
C++字符串截取
按照字符串截取
/**
?* @brief ? 按照指定的字符串截取字符串
?* @param str ?需要截取的字符串
?* @param ?pattern ?按照該字符串截取
?* @return 截取好的字符串vector
?*/
std::vector<std::string> splitStr(std::string str, std::string pattern)
{
? ? std::string::size_type pos;
? ? std::vector<std::string> result;
? ? //擴(kuò)展字符串以方便操作
? ? str += pattern;
? ? int size = str.size();
? ? for (int i = 0; i < size; i++)
? ? {
? ? ? ? pos = str.find(pattern, i);
? ? ? ? if (pos < size)
? ? ? ? {
? ? ? ? ? ? std::string s = str.substr(i, pos - i);
? ? ? ? ? ? result.push_back(s);
? ? ? ? ? ? i = pos + pattern.size() - 1;
? ? ? ? }
? ? }
? ? return result;
}按照字符截取
/**
?* @brief ? 按照指定的字符截取字符串
?* @param str ?需要截取的字符串
?* @param ?pattern ?按照該字符截取
?* @return 截取好的字符串vector
?*/
std::vector<std::string> splitStr(std::string str, char pattern)
{
? ? // 擴(kuò)展字符串,方便后面進(jìn)行操作
? ? str.push_back(pattern);
? ? std::vector<std::string> result;
? ? auto iter = str.cbegin();
? ? auto iter2 = iter;
? ? for (iter; iter != str.cend(); ++iter)
? ? {
? ? ? ? if (*iter == pattern)
? ? ? ? {
? ? ? ? ? ? result.push_back(string(iter2, iter));
? ? ? ? ? ? iter2 = iter + 1;
? ? ? ? }
? ? }
? ? return result;
}C++截取部分字符串(類(lèi)似python的切片)
1.首先在python中取一個(gè)字符串的多少位,使用s[begin:end]。
2.c++中使用一個(gè)函數(shù)來(lái)截取字符串位
頭文件:
#include <string> //注意沒(méi)有.h string.h是C的標(biāo)準(zhǔn)字符串函數(shù)數(shù),c++中一般起名為ctring. 而string頭文件是C++的字符串頭文件。
函數(shù)原型:
string substr(int pos = 0,int n ) const;
參數(shù)說(shuō)明:
- 參數(shù)1:pos是必填參數(shù)
- 參數(shù)2:n是可參數(shù),表示取多少個(gè)字符,不填表示截取到末尾
該函數(shù)功能為:返回從pos開(kāi)始的n個(gè)字符組成的字符串,原字符串不被改變
# include <iostream>
# include <string>
using namespace std;
int main()
{
? ? const string image_name = "0170.bmp";
? ? print(image_name.substr(0, 4));
? ? return 0;
}總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
C++?線段樹(shù)原理與實(shí)現(xiàn)示例詳解
這篇文章主要為大家介紹了C++?線段樹(shù)原理與實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
C語(yǔ)言編程之初識(shí)數(shù)組線性查找和二分查找
本篇文章是C語(yǔ)言編程篇,主要為大家介紹C語(yǔ)言編程中數(shù)組的線性查找及二分查找分析講解,有需要的朋友可以借鑒參考下,希望可以有所幫助2021-09-09
C++實(shí)現(xiàn)十六進(jìn)制字符串轉(zhuǎn)換成int整形值的示例
今天小編就為大家分享一篇關(guān)于C++實(shí)現(xiàn)十六進(jìn)制字符串轉(zhuǎn)換成int整形值的示例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12
詳解VS2019使用scanf()函數(shù)報(bào)錯(cuò)的解決方法
本文主要介紹了詳解VS2019使用scanf()函數(shù)報(bào)錯(cuò)的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
淺談Qt中使用CEF的幾個(gè)要點(diǎn)(Windows下)
下面小編就為大家?guī)?lái)一篇淺談Qt中使用CEF的幾個(gè)要點(diǎn)(Windows下)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07
C++?OpenCV實(shí)戰(zhàn)之零部件的自動(dòng)光學(xué)檢測(cè)
這篇文章主要為大家介紹一個(gè)C++?OpenCV的實(shí)戰(zhàn)——零部件的自動(dòng)光學(xué)檢測(cè),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-09-09

