#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip>
#include <cmath>
#include <fstream>
#include <vector>
#include <sstream>
using namespace std;

// 文字列 target が 文字列 pattern で始まっている場合には真、さもなくば偽を返す。
int shrhstr( string target_str, string pattern_str ){

	const char *target=target_str.c_str();
	const char *pattern=pattern_str.c_str();
	
	return target == strstr( target, pattern );

}//shrhstr
//String型を分割する
std::vector<std::string> split(std::string str, std::string delim) {
	std::vector<std::string> items;
	std::size_t dlm_idx;
	if(str.npos == (dlm_idx = str.find_first_of(delim))) {
		items.push_back(str.substr(0, dlm_idx));
	}
	while(str.npos != (dlm_idx = str.find_first_of(delim))) {
		if(str.npos == str.find_first_not_of(delim)) {
			break;
		}
		items.push_back(str.substr(0, dlm_idx));
		dlm_idx++;
		str = str.erase(0, dlm_idx);
		if(str.npos == str.find_first_of(delim) && "" != str) {
			items.push_back(str);
			break;
		}
	}
	return items;
}

//文字列
int string_Matching(vector<string> lines,string para_name,string &params,string delim){

	params="";	
	for(int i=0;i<lines.size();i++){
		string str    = lines[i];

		if(shrhstr(str,"//")==true){//コメント読み飛ばし
			//cout<<"e:"<<str<<endl;
		}
		else{						//\t区切り

			vector<string> result = split(str, delim);
			int a=result.size();
			if(result.size()==2){
				if(result[0]==para_name)			params=result[1];
			}

		}
	}

		//cout<<para_name<<" "<<params<<endl;

	return 0;

}

//Stringからdoubleへ変換
double StringToDouble(string in){
	istringstream is;        // 
	is.str(in);               // isに文字列sを割り当てる
	double out;    
	is >> out;                 // isからxに流す(イメージ)
	return out;
}