平成19年度計算機言語処理 夏休み課題プリント
1)次の記号及び略語の意味を答えよ。
教科書p50~の<名前>読み取りを行うプログラムを作成せよ。開発言語は何でもよいができれば正規表現が利用できる言語を用いてみよ。入力はファイルから読み込み、出力は標準出力でよい。読み込んだ文字列を前から走査し、<名前>の条件を満たすものをすべて出力すること。
提出様式
レポート用紙に作成したプログラムのソースと簡単な実行結果をつける。
表紙をつけ課題名「<名前>読み取り」、提出日、出席番号、名前を書く。
提出日
9月4日の計算機言語の時間
ふつうに解く
C++
#include <iostream>
#include <string>
#include <fstream>
#include <boost/regex.hpp>
using namespace std;
using boost::regex;
using boost::sregex_iterator;
using boost::make_regex_iterator;
int main(int argc, char** argv)
{
if(argc==1) return 1;
char ch;
ifstream fin( argv[1] );
if(!fin) return 1;
string text = "";
while( fin.get(ch) )
text = text + ch;
fin.close();
for (sregex_iterator it = make_regex_iterator(text, regex("[A-Za-z][A-Za-z0-9]*"));
it != sregex_iterator(); it++)
cout << *it << endl;
return 0;
}
Short Coding で解く
C
C++
Perl
% perl -ane'for(@F){print if =~ /^[A-Za-z]\w*/' INPUT_FILE
動作未確認。
最終更新:2007年09月14日 19:59