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

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

?? main3.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 pos3 = word.size()-3;
	char ch2 = word[ pos3+1 ];

	// "ss" or "is" ending? return
	if ( ch2 == 's' || ch2 == 'i' )
	     return;

	// "ous" ending? return
	if ( ch2 == 'u' && word[ pos3 ] == 'o' )
	     return;

	// "ies" ending? replace with 'y'
	if ( ch2 == 'e' && word[ pos3 ] == 'i' )
	{
	     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一区二区三区免费野_久草精品视频
不卡视频一二三| 高清不卡一区二区在线| 91麻豆产精品久久久久久| 国模冰冰炮一区二区| 国产精品美女久久久久久久久| 国产成人免费视频| 国产高清不卡二三区| 国产精品综合av一区二区国产馆| 亚洲人成网站在线| 亚洲视频1区2区| 一二三区精品视频| 久久中文娱乐网| 亚洲国产精品精华液ab| 欧美日韩视频在线一区二区| 欧美在线综合视频| 日韩一区二区三区四区五区六区| 97se亚洲国产综合自在线| 日韩国产欧美三级| 自拍偷拍亚洲激情| 一区二区三区免费网站| 亚洲成人一区在线| 极品美女销魂一区二区三区免费| 亚洲精品高清视频在线观看| 久久综合九色综合97婷婷 | 午夜精品久久久久久久| 国产精品免费视频观看| 3d动漫精品啪啪一区二区竹菊| 91小视频在线| 欧美情侣在线播放| 国产亚洲综合性久久久影院| 中文字幕亚洲不卡| 亚洲电影在线免费观看| 久久97超碰国产精品超碰| 爽爽淫人综合网网站| 国内精品嫩模私拍在线| 91视频在线看| 日韩欧美在线综合网| 国产精品国产自产拍高清av| 精品美女一区二区| 中文字幕五月欧美| 国产一区二区三区在线观看精品| 奇米精品一区二区三区在线观看 | 一区二区三区精品在线| 美女视频网站久久| 在线观看日韩国产| 国产欧美日韩一区二区三区在线观看 | 精品一区二区三区免费毛片爱| 五月激情六月综合| 国产999精品久久| 欧美精品欧美精品系列| 中文字幕中文字幕一区二区| 久久精品日韩一区二区三区| 婷婷综合在线观看| 在线影视一区二区三区| 色综合久久久久久久久| 国产欧美日韩视频一区二区| 日韩精品电影在线| 91麻豆视频网站| 欧美性猛交xxxx黑人交| 国产精品九色蝌蚪自拍| 亚洲欧美日韩电影| 成人免费视频一区二区| 26uuu国产在线精品一区二区| 久久久91精品国产一区二区精品 | 激情五月激情综合网| 3d动漫精品啪啪一区二区竹菊| 在线播放91灌醉迷j高跟美女| 538在线一区二区精品国产| 亚洲黄色性网站| 99精品桃花视频在线观看| 国产欧美精品一区aⅴ影院| 免费成人在线播放| 欧美日韩日日摸| 亚洲综合色在线| 在线免费观看成人短视频| 国产精品福利一区| 91麻豆国产在线观看| 一区2区3区在线看| 欧美精品久久99| 奇米影视一区二区三区| 精品91自产拍在线观看一区| 喷白浆一区二区| 精品福利一区二区三区| 国产毛片精品国产一区二区三区| 色哟哟一区二区在线观看| 亚洲精品国产无天堂网2021| 久久精品国产一区二区三区免费看| 国产成人99久久亚洲综合精品| 欧美日韩久久一区二区| 麻豆精品精品国产自在97香蕉| 91在线高清观看| 亚洲一区精品在线| 欧美一级免费大片| 国产伦精品一区二区三区在线观看| 色综合久久久久久久| 一区二区三区四区乱视频| 欧美在线|欧美| 亚洲国产日韩综合久久精品| 国产精品一区二区三区四区| 精品免费国产二区三区| 99视频一区二区三区| 亚洲欧美日韩在线| 欧美图区在线视频| 舔着乳尖日韩一区| 欧美va亚洲va| 亚洲va天堂va国产va久| 国产伦理精品不卡| 国产精品久久久久久久岛一牛影视| 一区二区三区精品| 欧美一区二区三区人| 极品少妇一区二区三区精品视频| 色哟哟亚洲精品| 视频在线观看一区| 综合婷婷亚洲小说| 欧美日韩不卡视频| 国内成人精品2018免费看| 欧美影院一区二区| 免费观看久久久4p| 欧美不卡视频一区| 色网综合在线观看| 久久精品国产网站| 亚洲日本中文字幕区| 欧美日本乱大交xxxxx| 国内精品在线播放| 亚洲国产美国国产综合一区二区| zzijzzij亚洲日本少妇熟睡| 亚洲综合偷拍欧美一区色| 日韩欧美另类在线| 91香蕉视频在线| 精品伊人久久久久7777人| 亚洲欧洲无码一区二区三区| 欧美老女人在线| 国产福利一区二区| 久久久综合视频| 激情欧美日韩一区二区| 亚洲免费色视频| 国产成人av在线影院| 亚洲一区二区三区小说| 久久久不卡网国产精品二区| 欧美午夜电影网| 成人精品免费看| 久久99九九99精品| 国产精品久久三| 国产精品久久久久久久浪潮网站| 国产精品99久久久久| 午夜欧美视频在线观看| 中文字幕av不卡| www国产精品av| 在线亚洲高清视频| 欧洲精品中文字幕| jizzjizzjizz欧美| 国产成人av一区二区三区在线| 26uuu精品一区二区| 91麻豆精品国产91| 91国在线观看| 欧美亚洲另类激情小说| 97精品久久久久中文字幕| 国产成人日日夜夜| 狠狠网亚洲精品| 久久婷婷国产综合精品青草| 91精品国产综合久久精品性色| 亚洲r级在线视频| 亚洲永久免费av| 亚洲精品视频免费看| 综合久久久久综合| 中文字幕在线不卡| 亚洲成人激情综合网| 亚洲最大成人网4388xx| 欧美成人欧美edvon| 成人国产亚洲欧美成人综合网 | 精品国产网站在线观看| 日韩美女视频在线| 成人激情文学综合网| 国产精品一卡二| 国产福利91精品一区| 国产91高潮流白浆在线麻豆| 不卡的av电影| 色天使久久综合网天天| 在线观看av一区| 欧美在线观看禁18| 91精品在线一区二区| 欧美三级三级三级爽爽爽| 欧美巨大另类极品videosbest | 精品国产91乱码一区二区三区| 99这里都是精品| 在线观看一区日韩| 欧美高清视频一二三区 | 久久国产欧美日韩精品| 国产在线视频不卡二| 国产在线不卡视频| 99视频精品全部免费在线| 免费观看在线色综合| 国产一区二区三区精品欧美日韩一区二区三区 | 国产.欧美.日韩| 五月婷婷久久丁香| 中文字幕一区二区三区av| 亚洲一线二线三线视频| 国产精品天干天干在观线| 曰韩精品一区二区| 国产乱码精品一区二区三|