美观化文字《汉字的切割问题》

注意:你可以认为所有中文字符由两个字节组成,首字节的ASCII值都大于127(也可以理解为signed char型小于0)

题目:

请看下面两段文字:

Kenny喊道:"我来了!"

Kenny喊道:“我来了!”

前面一段文字中由于在中文中使用了英文标点,显得不太美观。本题中你的任务是让任意一段文字美观化。美观化具体要求为将以下字符(串)转换为对应的中文字符:

英文 中文 ,    , .    。 !    ! "    “或” <<   《>>    》 ?    ?

Input输入文字只有一段。文字中可能含有中英文、符号以及控制符(换行、空格、制表符等)。Output按照要求输出美化后的文字段。 你不用翻译以上指定的符号之外的所有字符。Sample Input

Kenny喊道:"我来了!"

Sample Output

Kenny喊道:“我来了!”

 分析:1.输入一换行符结束。2.对双引号的处理分两种情况:1)英文的双引号,2)汉字符中也有双引号对后面和前面的干扰。3.怎样判断汉字符4.怎样在字符串中切割汉字符

代码如下:#include<iostream>#include<string.h>using namespace std;#define Max 10000char source[Max];char ch1[] = ",";char ch2[] = "。";char ch3[] = "!";char ch4[] = "《";char ch5[] = "》";char ch6[] = "?";char ch7[] = "“";char ch8[] = "”";int main(){ int n = 1; while (cin.getline(source, Max)) {  int pow = 0;  int len = strlen(source);  char chol[3];  for (int i = 0; i < len; i++)  {   if (source[i] == ‘,‘){ printf("%s", ch1); }   else if (source[i] == ‘.‘){ printf("%s", ch2); }   else if (source[i] == ‘!‘){ printf("%s", ch3); }   else if (source[i] == ‘?‘){ printf("%s", ch6); }   else if (source[i] == ‘<‘&&source[i + 1] == ‘<‘)   {    i++;    printf("%s", ch4);   }   else if (source[i] == ‘>‘&&source[i + 1] == ‘>‘)   {    i++;    printf("%s", ch5);   }   else if (source[i] == ‘"‘)   {    if (n%2)    {     printf("%s", ch7);     n++;    }    else    {     printf("%s", ch8);      n++;    }   }   else if (source[i] < 0)   {    chol[pow++] = source[i];    if (pow == 2)    {     chol[pow] = ‘\0‘;     printf("%s", chol);     if (strcmp(chol, ch7) == 0){ n++; }     if (strcmp(chol, ch8) == 0){ n++; }     pow = 0;    }   }   else   {    printf("%c", source[i]);   }  }  printf("%c", ‘\n‘); } return 0;}

算法分析:由于汉字符占两个字节而英语字符占一个,如果选择将英文字符换成汉字符的思想是不可行的。因为每次交换都要向后移动部分数组或者将一段段的放到另一个数组中这样就会有遍历出现导致时间变长。而在oj平台只是测试输出文件的内容是否正确就行。所以所采取的算法就是,遇到要转换的字符直接输出需要转化的字符就行对字符串本身不做过多操作。对双引号的处理有两种方法:1.使用奇数偶数,2.使用bool数(其实只要有两面性的表示都可以)

对汉字符的处理,判断char类型是否<0,若为汉字就每次存储两个字节在数组中就行。数据结构:对”“,《》因为是两个字节,所以必须以字符串的形式存储。

原文地址:https://www.cnblogs.com/damaoranran/p/8645508.html

时间: 2024-11-25 16:27:38

美观化文字《汉字的切割问题》的相关文章

HDU 1736 美观化文字

美观化文字 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4009    Accepted Submission(s): 881 Problem Description 请看下面两段文字: Kenny喊道:"我来了!" Kenny喊道:“我来了!” 前面一段文字中由于在中文中使用了英文标点,显得不太美观.本题中你的任务是让任意

jquery-ui-datepicker定制化,汉化,因手机布局美观化源码修改

感谢浏览,欢迎交流=.= 公司微信网页需要使用日历控件,想到jquery-mobile,但是css影响页面布局,放弃后使用jquery-ui-datepicker. 话不多说,进入正题: 1.jqueryui官网定制化下载jquery-ui. 只取其core+datepicker 则仅需40kb,欣喜一番,因为之前想用dialog功能,发现定制下来150多kb,太奢侈了. 2.汉化代码 (function () { $.datepicker.regional['zh-CN'] = { clear

[转]简单美观的文字标签云组件

http://ibruce.info/2014/02/10/the-most-beautiful-word-cloud/ 经常在微博或微信的文章中看到漂亮的分析图.我认为在大数据的时代,目前最关键的就是如何让非专业人员轻松的进行数据分析,比如可以象使用 office 一样制作信息图(infographic),而不是用专业的制图工具.这一步跨过去,看到的将是欣欣向荣的真正大数据时代. 而这之前,首先缺少的就是,可以让普通开发人员使用的大数据时代的可视化图表组件,比如标签云图,所幸,业界已经有 EC

OCR技术浅探 : 文字定位和文本切割(2)

文字定位 经过前面的特征提取,我们已经较好地提取了图像的文本特征,下面进行文字定位. 主要过程分两步: 1.邻近搜索,目的是圈出单行文字: 2.文本切割,目的是将单行文本切割为单字. 邻近搜索 我们可以对提取的特征图进行连通区域搜索,得到的每个连通区域视为一个汉字. 这对于大多数汉字来说是适用,但是对于一些比较简单的汉字却不适用,比如"小"."旦"."八"."元" 这些字,由于不具有连通性,所以就被分拆开了,如图13. 因此,

【OCR技术系列之四】基于深度学习的文字识别(3755个汉字)

上一篇提到文字数据集的合成,现在我们手头上已经得到了3755个汉字(一级字库)的印刷体图像数据集,我们可以利用它们进行接下来的3755个汉字的识别系统的搭建.用深度学习做文字识别,用的网络当然是CNN,那具体使用哪个经典网络?VGG?RESNET?还是其他?我想了下,越深的网络训练得到的模型应该会更好,但是想到训练的难度以及以后线上部署时预测的速度,我觉得首先建立一个比较浅的网络(基于LeNet的改进)做基本的文字识别,然后再根据项目需求,再尝试其他的网络结构.这次任务所使用的深度学习框架是强大

《汉字宫》全集下载

一.幼儿识字必备教材<汉字宫> <汉字宫>的故事情节,是一位古代走来的汉字老爷爷,带着两个天真活泼的小朋友畅游"汉字宫".汉字爷爷给孩子们讲解每个汉字的来历,读音.字形.意义和书写,把象形字.形意字.意音字都讲得栩栩如生,孩子看电视时神情专注,喜笑颜开:加之在家长和教师鼓励下做做记忆训练和比赛,就能不知不觉地把个个汉字印入脑海并学会读书.只要父母(或祖辈)有时候陪同孩子看15分钟这部童话剧,谈谈说说,坚持一年,4-10岁儿童都能识字3500个,还特别喜爱阅读,终

安卓手机游戏测试要点

安卓手机游戏测试要点 广告位 1.上线产品是否需要加上广告,广告是否加上 2.广告位是否遮挡重要信息 评分界面 1.评分界面是否加上 2.评分界面文字是否出现错误,是否符合平台规定 3.按钮是否歧义 4.评分界面是否与游戏界面风格统一 计费部分 1. 计费要求是否达到 2. 购买道具:用户购买道具时,需要明确提示用户道具的名称.费用.并提供"确认"和"取消"功能选择.例:"购买道具***,信息费*元(不含通信费),通过短信代收,是否确认购买?"

atitit 英文与中文与阿拉伯文的简化解决方案.docx

1. 英文与中文与阿拉伯文的简化意义1 2. 简化的主要方法分类2 2.1. 同音替代法(比如o2o)2 2.2. 符号法(比如英文i18n,汉字鸡)2 2.3. 内部掏空法(有点类似符号发2 2.4. 特征字缩写法(foto<<photo<<<photograph num代替number2 2.5. 草书法(辅音序列缩写法 比如prj代替project )2 3. 英文简化方案2 4. 中文与汉字简化方案2 5. 阿拉伯文的简化方案3 6. 语言简化的障碍倒是不是很大,文字

手机app测试要点(复制文)

目录: 一.简介?4 1.1什么是App测试?6 1.2  测试方法?6 1.2.1  白盒测试?6 1.2.2  黑盒测试?6 1.2.3  人工测试?7 1.2.4  自动化测试?7 1.3   UT.IT.ST测试?7 1.3.1  Unit Testing单元测试?7 1.3.2  Integrate Testing集成测试?7 1.3.3  System Testing系统测试?8 二.移动App的系统测试?9 2.1  冒烟测试(Smoke Testing)?10 2.2    功能