博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用map将“简写信件”转化为“原始信件”
阅读量:4140 次
发布时间:2019-05-25

本文共 1628 字,大约阅读时间需要 5 分钟。

        我们首先来看这样一个场景: 某人很懒, 写信的时候, 经常用简写的形式代替完整的形式, 比如:

9494--->Yes, it is!

asap--->as soon as possible

sb--->se bi

....

     

      现在, 要写一套程序, 将这些简单的直接还原为原始的完整形式。 其实, 思路是很自然的, 对简写信中的每一个单词进行判断, 如果需要转化, 则转化, 如果不需要转化, 则不用转化。 这个需不需要, 取决于当前单词是否在map中, 好吧, 我们来看看编程模型吧:

 

     步骤一: 建立固定的转换规格文档default.txt, 其内容如下:

9494 Yes, it is!

asap as soon as possible
sb se bi
r are
y you

 

 

      步骤二: 在simpleLetter.txt中写信, 假设内容为:

i think y r a sb

9494
please reply it asap

 

      步骤三:写代码来转化:

 

#pragma warning(disable : 4786)#include #include 
#include
#include
#include
using namespace std;typedef map
mapSS;typedef map
::const_iterator mapSSIT;// 转换规则mapSS createMap(ifstream &mapFile){ mapSS mp; string key; string value; while(mapFile >> key && getline(mapFile, value)) // 其实value不再是一整行了 { if(value.size() < 1) { exit(1); } mp[key] = value.substr(1); // 好好理解一下这句话 } return mp;}// 转换单词const string& change(const string &s, const mapSS &mp){ mapSSIT it = mp.find(s); if(it == mp.end()) { return s; } return it->second;}// 转换信件int main(){ ifstream inMP("default.txt"); ifstream inLetter("simpleLetter.txt"); if(!inMP || !inLetter) { return 1; } mapSS mp = createMap(inMP); string line; while(getline(inLetter, line)) { stringstream isstr(line); // 我们又和stringstream见面了, 好亲切 string word; bool isFirstWord = true; while(isstr >> word) { if(isFirstWord) { isFirstWord = false; } else { cout << " "; } cout << change(word, mp); } cout << endl; } return 0;}

      程序的结果为:

 

 

i think you are a se bi

Yes, it is!
please reply it as soon as possible

 

      当然, 需要指出的是, 如果在简写信件里面有标点符号, 那么很可能对程序造成影响。 上面程序仅仅是考虑了一些简单的情况。

 

      再一次, 我们看到了map的强大用途。

 

 

 

转载地址:http://fugvi.baihongyu.com/

你可能感兴趣的文章
jQuery ajax - ajax() 方法
查看>>
将有序数组转换为平衡二叉搜索树
查看>>
最长递增子序列
查看>>
从一列数中筛除尽可能少的数,使得从左往右看这些数是从小到大再从大到小...
查看>>
判断一个整数是否是回文数
查看>>
经典shell面试题整理
查看>>
腾讯的一道面试题—不用除法求数字乘积
查看>>
素数算法
查看>>
java多线程环境单例模式实现详解
查看>>
将一个数插入到有序的数列中,插入后的数列仍然有序
查看>>
在有序的数列中查找某数,若该数在此数列中,则输出它所在的位置,否则输出no found
查看>>
万年历
查看>>
作为码农你希望面试官当场指出你错误么?有面试官这样遭到投诉!
查看>>
好多程序员都认为写ppt是很虚的技能,可事实真的是这样么?
查看>>
如果按照代码行数发薪水会怎样?码农:我能刷到公司破产!
查看>>
程序员失误造成服务停用3小时,只得到半月辞退补偿,发帖喊冤
查看>>
码农:很多人称我“技术”,感觉这是不尊重!纠正无果后果断辞职
查看>>
php程序员看过来,这老外是在吐糟你吗?看看你中了几点!
查看>>
为什么说程序员是“培训班出来的”就是鄙视呢?
查看>>
码农吐糟同事:写代码低调点不行么?空格回车键与你有仇吗?
查看>>