C++ 處理文件字符常用工具

1.string

string的定義,初始化乡括,遍歷等基礎(chǔ)在此略去昭抒。

常用的string類型的操作
substr()
replace()
find()
split()
trim()


1.1 substr()

 s.substr(pos,n)該函數(shù)截取s字符串從pos開(kāi)始計(jì)算共n個(gè),然后返回該子串府树。該函數(shù)由string類庫(kù)提供

1.2 replace()

s.replace(pos,len,args)該函數(shù)刪除s中從下表pos開(kāi)始的len個(gè)字符喜最,用args指定的字符替換偎蘸。
然后返回s的引用庄蹋。該函數(shù)也由string類庫(kù)提供

1.3 find()

 s.find(args瞬内,pos)該函數(shù)從s的pos位置開(kāi)始查找args第一次出現(xiàn)的位置并返回該值。
 該函數(shù)也由string類庫(kù)提供限书。

1.4 split()該函數(shù)由自己實(shí)現(xiàn)

<code>
void split(std::string& s, std::string& delim,std::vector< std::string >* ret)
{
size_t last = 0;
size_t index=s.find_first_of(delim,last);
while (index!=std::string::npos)
{
ret->push_back(s.substr(last,index-last));
last=index+1;
index=s.find_first_of(delim,last);
}
if (index-last>0)
{
ret->push_back(s.substr(last,index-last));
}
}
</code>
1.5 trim()該函數(shù)由自己實(shí)現(xiàn)
<code>
std::string& trim(std::string &s)
{
if (s.empty())
{
return s;
}
s.erase(0,s.find_first_not_of(" "));
s.erase(s.find_last_not_of(" ") + 1);
return s;
}
</code>

2. vector

定義:

     vector<類型> v虫蝶;

插入:

     尾部插入: v.push_back(a);
     普通插入:v.insert(v.begin()+i,a);在第i+1個(gè)元素前面插入a

刪除:

    刪除元素:    v.erase(v.begin()+2);刪除第3個(gè)元
    清空:        v.clear();

遍歷:

     使用下標(biāo)訪問(wèn)元素:
                  cout<<v[0]<<endl;記住下標(biāo)是從0開(kāi)始的
     使用迭代器訪問(wèn)元素:
                 vector<int>::iterator it;
                 for(it=v.begin();it!=v.end();it++) 
                     cout<<*it<<endl;

大小:

       向量大小:v.size();

3.map

定義:

   map<類型,類型> m倦西;
   map<int ,string>maplive;
   map<int ,string >::iterator l_it;

查詢:

   l_it=maplive.find(112);
   if(l_it==maplive.end())
          cout<<"we do not find112"<<endl;
   else  
          cout<<"wo find112"<<endl;

插入:

    1.maplive.insert(pair<int,string>(102,"aclive"));
    2.maplive.insert(map<int,string>::value_type(321,"hai"));
    3.maplive[112]="April";//map中最簡(jiǎn)單最常用的插入添加能真!

刪除:

   l_it =maplive.find(112);
   if( l_it == maplive.end())
        cout<<"we do not find112"<<endl;
   else 
        maplive.erase(l_it);//delete 112;

遍歷:

  for(l_it=maplive.begin();l_it!=maplive.end();l_it++)
        cout<<"key:"<<l_it->first<<"value:"<<l_it->second<<endl;

大小:

  maplive.size();

4.stack

定義:

      stack<類型> s扰柠;
      stack<string> st;

插入:

     string x;
     st.push(x);

刪除:

    st.pop();出棧操作只是刪除棧頂元素粉铐,并不返回該元素。

判空:

    st.empty();

大新钡怠:

    st.size();

訪問(wèn):

   st.top();訪問(wèn)棧頂元素蝙泼;

5.queue

定義:

   queue<類型> q;
   queue<string>qu;

插入:

  string x;       
  qu.push(x);

刪除:

 qu.pop();彈出隊(duì)列的第一個(gè)元素劝枣,并不會(huì)返回被彈出的元素值汤踏;

遍歷:

  qu.front() : 訪問(wèn)隊(duì)首元素
  qu.back() : 訪問(wèn)隊(duì)尾元素

大小:

  qu.size()

6.文件的輸入

<code>
void ReadDataFromFileLBLIntoCharArray()
{
cout<< "逐行讀取, 將行讀入字符數(shù)組, 行之間用回車(chē)換行區(qū)分" << endl;
ifstream fin("file.txt")
const int LINE_LENGTH=100;
char str[LINE_LENGTH];
while(fin.getline(str,LINE_LENGTH))
{
cout << str << endl;
}
fin.close();
}
</code>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末舔腾,一起剝皮案震驚了整個(gè)濱河市溪胶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌稳诚,老刑警劉巖哗脖,帶你破解...
    沈念sama閱讀 212,080評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡才避,警方通過(guò)查閱死者的電腦和手機(jī)丘损,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,422評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)工扎,“玉大人徘钥,你說(shuō)我怎么就攤上這事≈铮” “怎么了呈础?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,630評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)橱健。 經(jīng)常有香客問(wèn)我而钞,道長(zhǎng),這世上最難降的妖魔是什么拘荡? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,554評(píng)論 1 284
  • 正文 為了忘掉前任臼节,我火速辦了婚禮,結(jié)果婚禮上珊皿,老公的妹妹穿的比我還像新娘网缝。我一直安慰自己,他們只是感情好蟋定,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,662評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布粉臊。 她就那樣靜靜地躺著,像睡著了一般驶兜。 火紅的嫁衣襯著肌膚如雪扼仲。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,856評(píng)論 1 290
  • 那天抄淑,我揣著相機(jī)與錄音屠凶,去河邊找鬼。 笑死肆资,一個(gè)胖子當(dāng)著我的面吹牛矗愧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播迅耘,決...
    沈念sama閱讀 39,014評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼贱枣,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了颤专?” 一聲冷哼從身側(cè)響起纽哥,我...
    開(kāi)封第一講書(shū)人閱讀 37,752評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎栖秕,沒(méi)想到半個(gè)月后春塌,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,212評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,541評(píng)論 2 327
  • 正文 我和宋清朗相戀三年只壳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了俏拱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,687評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吼句,死狀恐怖锅必,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情惕艳,我是刑警寧澤搞隐,帶...
    沈念sama閱讀 34,347評(píng)論 4 331
  • 正文 年R本政府宣布,位于F島的核電站远搪,受9級(jí)特大地震影響劣纲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜谁鳍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,973評(píng)論 3 315
  • 文/蒙蒙 一癞季、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧倘潜,春花似錦绷柒、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,777評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至蕊退,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間憔恳,已是汗流浹背瓤荔。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,006評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留钥组,地道東北人输硝。 一個(gè)月前我還...
    沈念sama閱讀 46,406評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像程梦,于是被迫代替她去往敵國(guó)和親点把。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,576評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容