功能:給定乙個string,將它按照一定規則轉換為另乙個string
輸入:
1_rule檔案儲存轉換規則(每條規則由兩部分組成:可能在輸入檔案中出現的單詞和乙個用來替代的短語)
2_input檔案儲存待轉換的文字
輸出:在標準輸出中列印轉換後的文字
1 word_transform函式控制整個轉換過程,接受兩個引數,乙個轉換規則,乙個帶轉換的文字
2 buildmap 函式:讀入給定檔案,建立單詞轉換對映
3 transform_word 函式:讀入需要轉換的string的引用和轉換規則;如果給定string在map中,則返回轉換後的string,否則直接返回原string
string map_path = "/users/tubin/desktop/testforfstream/1_rule.txt";
string input_path = "/users/tubin/desktop/testforfstream/2_input.txt";
ifstream map_file(map_path);
ifstream input(input_path);
try
word_transform(map_file, input); //直接呼叫轉換程式
} catch (runtime_error e)
//讀取每一行,對每行中每乙個單詞進行對映
void word_transform(std::ifstream &map_file, std::ifstream &input) else
string ss = transform_word(record, m_rule);
cout
<< ss;
}cout
<< endl;
}}
//給定規則檔案,建立map
std::map
build_map(std::ifstream &map_file) else
}return m_rule;
}
//根據map,對映單詞
const
std::string& transform_word(const
std::string& s, const
std::map
& m_rule) else
}
雖然題意簡單,但還是能夠考察基本功。其中istringstream的使用和讀取key value的方法值得學習。 C 之STL(關聯型容器概覽)(藍橋杯備戰)
stl提供了四個關聯型容器,包括 map 對映 multimap 多重對映 set 集合 multiset 多重集合 map multimap的元素由 key,value 二元組構成,其中鍵必須是唯一的 set multiset 相當於叧有鍵 key 沒有對應值 value 的 map 和mulit...
單詞轉換程式 使用map 檔案讀寫操作
單詞轉換程式是c primer中的題。主要使用map來儲存單詞轉換的規則 以及檔案讀寫的操作,比如ifstream ofstream istringstream 流程 1 生成單詞轉換規則,其中使用ifstream讀寫檔案,將每一行的單詞拆分開,拆分出來的單詞分別存放在map的key value對 ...
C 12 實現單詞轉換的map程式
這個程式的功能是這樣的 給定乙個string,將它轉換為另乙個string,程式的輸入是兩個檔案。第乙個檔案儲存的是一些規則,用來轉換第二個檔案中的文字,每條規則有兩部分組成 乙個可能出現在輸入檔案中的單詞和乙個用來替換為對應的短語,第二個輸入檔案包含要轉換的文字。程式如下 include incl...