给定一个字典,通过查找这个字典,替换给定的字符串中的中文为英文
描述:第一对START和END中给定的是字典
第二对START和END是给定字符串
输入:
START
hello nihao
yes shi
like xihuan
world shijie
gril nvhai
END
START
i'm a nvhai!
i xihuan shijie.
nihao
END
输出:
i'm a gril!
i like world.
hello
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
#include <vector>
#include <map>
using namespace std;const string Start = "START";
const string End = "END";int main()
{map<string, string> myMap;string value;while (cin >> value){if (value == Start)continue;else if (value == End)break;else{string key;cin >> key;myMap[key] = value;}}cin.get();string linestr;vector<string> historyBook;while (getline(cin, linestr)){if (linestr == Start)continue;else if (linestr == End)break;else{historyBook.push_back(linestr);}}int size = historyBook.size();int line = 0;while (line < size){ string& curline = historyBook[line];int strSize = curline.size();int f = 0, l = 0;while (l<=strSize){if (l == strSize || curline[l] == ',' || curline[l] == ' ' || curline[l] == '!' || curline[l] == '.'){ //读完一个单词char curWord[20];//假设每个单词长度不超过20strncpy(curWord, (char*)&curline[f], l - f); curWord[l - f] = '\0';//把当前读完的单词放入curWord中string tmpkey = curWord;map<string,string>::iterator it=myMap.find(tmpkey);if (it != myMap.end()){//如果未找到,it==myMap.end()curline.erase(f, l - f);//删除原来的汉语部分curline.insert(f, it->second);//在原来的位置插入所替换的英文f = f + (it->second).size()+1; l = f;strSize += ((it->second).size() - (it->first).size());//长度改变,所以要更新}else{f = l + 1; l = f;}}else++l;}++line;}for (int i = 0; i < historyBook.size(); ++i){cout << historyBook[i] << endl;}system("pause");return 0;
}
《完》
转载于:https://blog.51cto.com/lingdandan/1907773
给定一个字典,通过查找这个字典,替换给定的字符串中的中文为英文相关推荐
- 案例:从键盘输入本组学员的人数,和本组学员的姓名,用数组存储姓名,然后再从键盘输入一个姓名,查找它是否在之前的数组中,如果存在,就显示它的下标
package com.atguigu.z_homework;import java.util.Arrays; import java.util.Scanner;/* 案例:从键盘输入本组学员的人数, ...
- php中的替换函数,php字符串中替换函数是什么
php字符串中替换函数有两种,分别是:1.substr_replace函数,用于把字符串的一部分替换为另一个字符串:2.str_replace函数,能够使用一个字符串替换字符串中的另一些字符. 本文操 ...
- 写一个函数,2 个参数,1 个字符串,1 个字节数,返回截取的字符串,要求字符串中的中文不能出现乱码
题目要求: 写一个函数,2 个参数,1 个字符串,1 个字节数,返回截取的字符串,要求字符串中的中文不能出现乱码. 如("我ABC",4)应该截为"我AB", ...
- Java黑皮书课后题第6章:*6.20(计算一个字符串中字母的个数)编写一个方法,使用下面的方法体计算字符串中的字母个数。编写一个测试程序,提示用户输入字符串,然后显示字符串中的字母个数
6.20(计算一个字符串中字母的个数)编写一个方法,使用下面的方法体计算字符串中的字母个数.编写一个测试程序,提示用户输入字符串,然后显示字符串中的字母个数 题目 题目描述 破题 代码 运行示例 题目 ...
- 传入一个中文字符串,返回一个字符串中的中文拼音
/** * @param 传入一个中文字符串 * @return 返回一个字符串中的中文拼音 */ private String getNameNum(Strin ...
- C++ 编写一个函数,把字符串中的数字字符、英文字母字符和其它字符分开。
问题描述: 编写一个函数,把字符串中的数字字符.英文字母字符和其它字符分开.如对于字符串"12a:?3byu98!",将其分解为三个独立的字符串"12398". ...
- 题目:给定一个数组并查找数组里边的元素(C实现),每日一题防止颓废~达咩~~
enmmmm~ 这个题目我是这样写的en就是让用户自己给定一个值然后呢查找这个数组里边的元素enmmm我写的这个方法比较笨,就是定义一个左下标(最左边的下标)int left还有 一个右下标(最右边的 ...
- java替换最后一个字符_Excel公式技巧23: 同时定位字符串中的第一个和最后一个数字...
学习Excel技术,关注微信公众号: excelperfect 在很多情况下,我们都面临着需要确定字符串中第一个和最后一个数字的位置的问题,这可能是为了提取包围在这两个边界内的子字符串.然而,通常的公 ...
- 一次性查找并统一替换多个 Excel 中的多个关键字
概要:Excel文件在我们日常整理数据表的时候非常的方便,那么有没有一种方法能够一次性的批量查找并且统一的替换 Excel中的某一些关键词吗?今天就给大家讲解一下,如何批量的替换Excel文件中的关键 ...
最新文章
- C++ 函数部分(1)
- arthas 排查内存溢出_小学妹问我:如何利用可视化工具排查问题?
- Containerd迎来1.0通用版本
- 【UOJ207】共价大爷游长沙【LCT】【异或】【随机化】
- 什么从什么写短句_2020抖音文案短句:爱情、励志、伤感合集,值得收藏!
- 【百度编辑器ueditor】工具,如何去掉百度编辑器 ueditor 元素路径、字数统计等...
- linux脚本程序是什么意思,什么是shell脚本编程?
- python入门基础系列八_03python—9个基础常识-python小白入门系列
- NSJSONSerialization-JSON数据与NSDictionary和NSArray之间的转化
- uva 10817 - Headmaster's Headache ( 状态压缩dp)
- 开发小技巧: 如何在jQuery中禁用或者启用滚动事件.scroll
- java.util.list 报错_cannot be cast to java.util.List
- t检验自由度的意义_统计学中自由度的理解和应用
- MySQL中的uuid函数是什么东西
- BootStrap Table:列参数
- CSS学习笔记之学成在线项目(下) 3.3
- 社群空间站一键发布微信群精品优质社群的搜索和发布平台
- chrome-linux/chrome: error while loading shared libraries: libnss3.so解决方法
- QT使用多国语言及linguist工具使用
- linux云计算基础(云计算介绍)
热门文章
- 一个算法同时解决两大CV任务,让目标检测和实例分割互相帮助,地平线实习生论文被AAAI 2020收录...
- 牛顿棺材板快盖不住了:用深度神经网络解决三体问题,提速一亿倍
- 最高5000倍加速模拟物理世界,育碧在修复bug上又进一步
- 苹果接盘倒下的无人车公司:吴恩达旗下,曾估值2亿美元,CEO及大部分员工被裁...
- Docker 使用 supervisord 管理 lumen队列与crontab
- 功能整合(二):轮播图(可控)、事件流
- 无需VR外设,普林斯顿学霸用DeepHand解放你的双手
- ZooKeeper Watch Java API浅析getChildren
- SYSAUX表空间使用率高问题处理
- Minor【 PHP框架】3.路由、控制器、视图