亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main3a.c

?? c++ primer 源代碼
?? C
字號:
#include <algorithm>
#include <string>
#include <vector>
#include <utility>

#include <iostream.h>
#include <fstream.h>

#include <stddef.h>

typedef pair<short,short>           location;
typedef vector<location,allocator>  loc;
typedef vector<string,allocator>    text;
typedef pair<text*,loc*>            text_loc;

extern vector<string,allocator> *retrieve_text();
extern text_loc *separate_words( const vector<string,allocator>* );
extern void display_text_locations( text_loc* );
extern void filter_text( vector<string,allocator>*, string filter );
extern void suffix_text( vector<string,allocator>* );
extern void suffix_s( string& );

int main() 
{
	vector<string,allocator>   *text_file      = retrieve_text();
        text_loc 		   *text_locations = separate_words( text_file );

        string filt_elems( "\",.;:!?)(" );
        filter_text( text_locations->first, filt_elems );
        suffix_text( text_locations->first );	

	ostream_iterator< string > output( cout, "\n" );

	cout << "----------- about to generate text read --------------\n";
        copy( text_file->begin(), text_file->end(), output );

	cout << "-------- about to generate word and location data ----\n";
	display_text_locations( text_locations );

	return 0;
}

vector<string,allocator>*
retrieve_text()
{
	string file_name;
	
	cout << "please enter file name: ";
	cin  >> file_name;

	ifstream infile( file_name.c_str(), ios::in );
	if ( !infile ) {
		cerr << "oops! unable to open file "
		     << file_name << " -- bailing out!\n";
		exit( -1 );
	}
	else cout << "\n";

	vector<string,allocator> *lines_of_text = new vector<string,allocator>;
        string textline;

        typedef pair<string::size_type, int> stats;
        stats maxline;
	int   linenum = 0;

        while ( getline( infile, textline, '\n' ))
	{
		cout << "line read: " << textline << "\n";

		if ( maxline.first < textline.length() )
		{
		     maxline.first = textline.length();
		     maxline.second = linenum;
		}

		lines_of_text->push_back( textline );
		linenum++;
	}

	cout << "\n";
        cout << "number of lines: " 
             << lines_of_text->size() << "\n";

	cout << "maximum length: "  
	     << maxline.first << "\n";

        cout << "longest line: "    
	     << (*lines_of_text)[ maxline.second ] << "\n";
	
	return lines_of_text;
}

text_loc*
separate_words( const vector<string,allocator> *text_file )
{
        // ok: now have all the lines. wish to grab the
        // individual words: look for blanks:

        vector<string,allocator>   *words     = new vector<string,allocator>;
	vector<location,allocator> *locations = new vector<location,allocator>;

        for ( short line_pos = 0; line_pos < text_file->size(); line_pos++ )
        {
		short  word_pos = 0;
                string textline = (*text_file)[ line_pos ];

                cout << "textline: " << textline << endl;

                string::size_type eol = textline.length();
                string::size_type pos = 0, prev_pos = 0;

                while (( pos = textline.find_first_of( ' ', pos )) != string::npos )
                {
                        cout << "eol: "  << eol << " "
			     << "pos: "  << pos << " "
			     << "line: " << line_pos << " "
			     << "word: " << word_pos << " "
                             << "substring: " 
                             << textline.substr( prev_pos, pos-prev_pos ) 
			     << "\n";

                        words->push_back( textline.substr( prev_pos, pos - prev_pos ));
			locations->push_back( make_pair( line_pos, word_pos ));

                        word_pos++; pos++; prev_pos = pos;
                }

	        cout << "last word on line substring: " 
                     << textline.substr( prev_pos, pos-prev_pos ) 
		     << "\n";

                words->push_back( textline.substr( prev_pos, pos - prev_pos ));
		locations->push_back( make_pair( line_pos, word_pos ));
        }
	
        return new text_loc( words, locations );
}

void 
display_text_locations( text_loc *text_locations )
{
        vector<string,allocator>   *text_words     = text_locations->first;
        vector<location,allocator> *text_locs      = text_locations->second;

        register int elem_cnt = text_words->size();

        if ( elem_cnt != text_locs->size() )
        {
	     cerr << "oops! internal error: word and position vectors "
		  << "are of unequal size\n"
		  << "words: " << elem_cnt << " "
		  << "locs: "  << text_locs->size() 
		  << " -- bailing out!\n";
	     exit( -2 );
	}

        for ( int ix = 0; ix < elem_cnt; ix++ ) 
        {
		cout << "word: " << (*text_words)[ ix ] << "\t"
		     << "location: (" 
		     << (*text_locs)[ix].first  << ","
		     << (*text_locs)[ix].second << ")"
		     << "\n";
	}

        cout << endl;
}

void 
filter_text( vector<string,allocator> *words, string filter )
{
	vector<string,allocator>::iterator iter = words->begin();
	vector<string,allocator>::iterator iter_end = words->end();

        if ( ! filter.size() )
             filter.insert( 0, "\".," );

        cout << "filter elements: " << filter << endl;

	while ( iter != iter_end )
	{
		cout << "filter_text: " << *iter << endl; 

                string::size_type pos = 0;
                while (( pos = (*iter).find_first_of( filter, pos )) != string::npos )
                {
                        cout << "found! : pos: " 
			     << pos << "\t" 
			     << (*iter)[pos] << endl;

			// this is wrong: erases from pos to npos
                        // (*iter).erase(pos);
                        (*iter).erase(pos,1);

			cout << "after: " << *iter << endl;
                }

		cout << "finished with word: " << *iter << endl;

		iter++;
	}
}

void
suffix_text( vector<string,allocator> *words )
{
        vector<string,allocator>::iterator iter = words->begin();
        vector<string,allocator>::iterator iter_end = words->end();

        while ( iter != iter_end )
        {
                cout << "suffix_text: " << *iter << endl;

		// if 3 or less characters, let it be
		if ( (*iter).size() <= 3 ) {
		     iter++; 
		     continue;
                }

		if ( (*iter)[ (*iter).size()-1 ] == 's' )
		     suffix_s( *iter );

		// additional suffix handling goes here ...

                iter++;
        }
}

void
suffix_s( string &word )
{
	cout << "suffix_s -- word passed in: " << word << endl;

	string::size_type spos = 0;
	string::size_type pos3 = word.size()-3;

        // "ous", "ss", "is"
	string suffixes( "oussis" );

        if ( ! word.compare( pos3, 3, suffixes, spos, 3 ) ||
             ! word.compare( pos3+1, 2, suffixes, spos+2, 2 ) ||
             ! word.compare( pos3+1, 2, suffixes, spos+4, 2 ))
        {
		cout << "suffix_s: found immutable suffix: "
		     << word << endl;
		return;
	}

	string ies( "ies" );
        if ( ! word.compare( pos3, 3, ies ))
	{
	     word.replace( pos3, 3, 1, 'y' );
	     cout << "suffix_s -- word returned: " << word << endl;

	     return; 
	}

	// erase ending 's'
	word.erase( pos3+2 );
	cout << "suffix_s -- word returned: " << word << endl;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人亚洲精品青草天美| 欧美一区二区在线免费播放| 久久蜜桃av一区二区天堂| 亚洲亚洲人成综合网络| 色综合色综合色综合| 国产精品久久久久久户外露出 | 91丝袜美女网| 中文字幕一区二区三区av| 成人美女在线视频| 国产精品国产三级国产有无不卡| 风流少妇一区二区| 久久精品亚洲乱码伦伦中文| 国产麻豆精品在线| 国产视频不卡一区| 99久久精品免费看国产免费软件| 《视频一区视频二区| 91视频com| 夜夜操天天操亚洲| 日韩一级片网址| 精东粉嫩av免费一区二区三区| 精品91自产拍在线观看一区| 国产很黄免费观看久久| 精品国产网站在线观看| 国产成人亚洲精品青草天美| 国产精品久久影院| 欧美色精品在线视频| 日本中文在线一区| 日韩精品一区二区在线| 国产乱码精品一品二品| 国产精品久久久久久久久果冻传媒| 97se狠狠狠综合亚洲狠狠| 亚洲一区在线观看免费| 日韩一区二区三区视频在线| 国产酒店精品激情| 亚洲免费观看视频| 欧美肥大bbwbbw高潮| 精品一区二区三区不卡 | 日本 国产 欧美色综合| 久久亚洲综合色一区二区三区 | 亚洲欧美日韩国产成人精品影院| 欧美最新大片在线看| 欧美aaaaa成人免费观看视频| 久久精品亚洲一区二区三区浴池| 成人国产一区二区三区精品| 五月天国产精品| 欧美国产日韩a欧美在线观看 | 久久综合色鬼综合色| 成人精品视频一区二区三区尤物| 亚洲午夜久久久久久久久电影院| 精品欧美一区二区久久| 99国产精品久久久久久久久久| 天天操天天干天天综合网| 久久精品亚洲精品国产欧美kt∨| 欧美在线观看视频一区二区| 国产一区二区福利视频| 亚洲国产aⅴ天堂久久| 欧美国产精品一区二区| 欧美男男青年gay1069videost| 成人免费毛片嘿嘿连载视频| 日韩国产欧美一区二区三区| 国产精品美女久久久久av爽李琼| 日韩色视频在线观看| 在线区一区二视频| 成人黄色在线视频| 欧美日韩综合色| 日韩制服丝袜先锋影音| 国产精品久久久一本精品| 3d成人h动漫网站入口| 91在线视频播放地址| 激情图片小说一区| 国产黄人亚洲片| 亚洲成a人在线观看| 成人欧美一区二区三区在线播放| www久久精品| 欧美一区二区三区播放老司机| 97精品电影院| 成人永久aaa| 国产一区亚洲一区| 韩国精品在线观看| 丝袜美腿成人在线| 亚洲一区二区三区国产| 亚洲男女毛片无遮挡| 国产精品福利一区| 久久蜜桃av一区二区天堂 | 久久影院午夜论| 日韩欧美国产电影| 国产精品免费免费| 久久久www成人免费毛片麻豆 | 久久99国产精品免费网站| 国产一区二区三区最好精华液| 丁香五精品蜜臀久久久久99网站| 成人的网站免费观看| 91一区二区在线| 337p亚洲精品色噜噜狠狠| 日韩你懂的在线播放| 国产日韩三级在线| 亚洲综合图片区| 久久国产精品色婷婷| 成人伦理片在线| 欧美日韩美女一区二区| 精品国产成人系列| 亚洲欧洲另类国产综合| 午夜欧美在线一二页| 激情综合色播五月| 99精品视频中文字幕| 欧美精品777| 国产精品私人影院| 婷婷综合另类小说色区| 韩国女主播成人在线观看| 99re这里只有精品首页| 欧美高清一级片在线| 国产日韩欧美一区二区三区综合| 亚洲三级在线免费| 久久97超碰国产精品超碰| 91在线码无精品| 日韩欧美卡一卡二| 国产精品乱人伦一区二区| 日本怡春院一区二区| 91啪九色porn原创视频在线观看| 欧美一区二区在线观看| 亚洲啪啪综合av一区二区三区| 美女久久久精品| 色噜噜久久综合| 欧美精品一区二区三区一线天视频| 国产精品久久久久久久岛一牛影视 | 欧美巨大另类极品videosbest | 麻豆精品久久精品色综合| 不卡电影一区二区三区| 日韩欧美国产一区二区三区 | 亚洲 欧美综合在线网络| 国产成人av电影在线播放| 51精品秘密在线观看| 国产精品久久久久一区二区三区| 奇米精品一区二区三区在线观看一| 99精品国产91久久久久久| 欧美精品一区二区三区高清aⅴ| 亚洲午夜激情网站| av午夜一区麻豆| 久久精品这里都是精品| 老司机午夜精品| 欧美人伦禁忌dvd放荡欲情| 亚洲另类春色校园小说| 国产91精品精华液一区二区三区 | 亚洲午夜电影网| 99久久精品久久久久久清纯| 欧美撒尿777hd撒尿| 国产自产视频一区二区三区| 欧美在线不卡视频| 国产精品久久久久9999吃药| 国产综合成人久久大片91| 欧美xxxxx裸体时装秀| 日韩高清一区二区| 欧美日韩专区在线| 一级日本不卡的影视| 91亚洲午夜精品久久久久久| 中文字幕免费一区| 韩国v欧美v亚洲v日本v| 精品国产乱码久久久久久夜甘婷婷 | 午夜精品一区在线观看| 色婷婷综合久色| 亚洲人亚洲人成电影网站色| 岛国精品一区二区| 国产精品午夜免费| 国产成人av电影在线观看| 久久久美女毛片| 国产激情精品久久久第一区二区| 久久久久亚洲蜜桃| 国产精品996| 久久精品欧美一区二区三区不卡 | 欧美婷婷六月丁香综合色| 国产精品萝li| 成人av免费网站| 日韩美女视频一区二区| 91网上在线视频| 一区二区三区在线播| 欧美无砖砖区免费| 日韩国产精品久久| 精品盗摄一区二区三区| 国产福利一区二区三区视频 | 成人亚洲精品久久久久软件| 国产精品免费久久| 在线亚洲免费视频| 午夜精品福利久久久| 精品福利视频一区二区三区| 国产在线精品一区二区三区不卡 | 中文字幕一区二区视频| 在线影院国内精品| 日韩激情视频网站| 精品久久久久久最新网址| 色成人在线视频| 精品一区二区三区在线播放视频 | 国产精品一区免费视频| 国产三级精品三级在线专区| caoporn国产精品| 一级日本不卡的影视| 日韩欧美一区二区免费| 成人美女视频在线观看18| 亚洲国产综合色| 久久综合色8888| 在线观看亚洲a|