#include<iostream>
#include<string.h>
#include<string>
#include<cstring>
#include<sstream>
using namespace std;
/*
问题检查函数
参数:输入的字符串
返回:BOOL
真表示为编码问题
假表示为解码问题
*/
bool check(string str){
bool ok=true;
for(int i=str.length()-;i>=;i--){
if(str[i]>='' && str[i]<=''){
ok=false;
break;
}
}//遍历看字符串中是否含有数字
return ok;
}
/*
编码函数
参数:待编码字符串
返回:无
*/
void bian(string str){
str+='';//给待编码的字符串加一个结束位’0‘
string new_str="";//编码后的字符串
int slen=str.length();
char pre=str[];//标记当前计算重复的字符
int renum=;//当前重复的个数
for(int i=;i<slen;i++){
if(str[i]==pre){//如果重复就继续累加
renum++;
}else{//否则将累加度和自符存入新的字符串中并更新字符和重复度
char *temp=new char;
sprintf(temp,"%d",renum);
new_str+=temp;
new_str+=pre;
renum=;
pre=str[i];
}
}
str=str.substr(,slen-);
cout<<"**********************************************\n";
cout<<"* 你想的是把原来的数据编码,对吧?结果如下:\n";
cout<<"* "<<str<<" ---> "<<new_str<<'\n';
cout<<"* 转换前长度为: "<<str.length()<<'\n';
cout<<"* 转换后长度为: "<<new_str.length()<<'\n';
cout<<"* 转换率为 : "<<new_str.length()/(str.length()*1.0)<<"\n";
cout<<"**********************************************\n\n";
}
/*
解码函数
参数:待解码字符串
输出:无
*/
void jie(string str){
istringstream in(str);//使用流操作
int num;char s;
string new_str="";
while(in>>num>>s){
while(num--)new_str+=s;
}
cout<<"**********************************************\n";
cout<<"* 你想的是把原来的数据解码,对吧?结果如下:\n";
cout<<"* "<<str<<" ---> "<<new_str<<'\n';
cout<<"* 解码前长度为: "<<str.length()<<'\n';
cout<<"* 解码后长度为: "<<new_str.length()<<'\n';
cout<<"* 解码率为 : "<<new_str.length()/(str.length()*1.0)<<"\n";
cout<<"**********************************************\n\n";
}
int main(){
string str;
while(getline(cin,str)){
if(check(str)){
bian(str);
}else{
jie(str);
}
}return ;
}

[C++] 行程编码C++代码的更多相关文章

  1. [Beautifulzzzz的博客目录] 快速索引点这儿O(∩_∩)O~~,红色标记的是不错的(⊙o⊙)哦~

    3D相关开发 [direct-X] 1.direct-X最小框架 [OpenGL] 1.环境搭建及最小系统 [OpenGL] 2.企业版VC6.0自带的Win32-OpenGL工程浅析 51单片机 [ ...

  2. 日期格式代码出现两次的错误 ORA-01810

    错误的原因是使用了两次MM . 一.Oracle中使用to_date()时格式化日期需要注意格式码 如:select to_date('2005-01-01 11:11:21','yyyy-MM-dd ...

  3. 可爱的豆子——使用Beans思想让Python代码更易维护

    title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...

  4. iOS代码规范(OC和Swift)

    下面说下iOS的代码规范问题,如果大家觉得还不错,可以直接用到项目中,有不同意见 可以在下面讨论下. 相信很多人工作中最烦的就是代码不规范,命名不规范,曾经见过一个VC里有3个按钮被命名为button ...

  5. Jquery的点击事件,三句代码完成全选事件

    先来看一下Js和Jquery的点击事件 举两个简单的例子 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...

  6. redux-amrc:用更少的代码发起异步 action

    很多人说 Redux 代码多,开发效率低.其实 Redux 是可以灵活使用以及拓展的,经过充分定制的 Redux 其实写不了几行代码.今天先介绍一个很好用的 Redux 拓展-- redux-amrc ...

  7. 编写高质量代码:改善Java程序的151个建议(第5章:数组和集合___建议75~78)

    建议75:集合中的元素必须做到compareTo和equals同步 实现了Comparable接口的元素就可以排序,compareTo方法是Comparable接口要求必须实现的,它与equals方法 ...

  8. 使用 .NET WinForm 开发所见即所得的 IDE 开发环境,实现不写代码直接生成应用程序

    直接切入正题,这是我09年到11年左右业余时间编写的项目,最初的想法很简单,做一个能拖拖拽拽就直接生成应用程序的工具,不用写代码,把能想到的业务操作全部封装起来,通过配置的方式把这些业务操作组织起来运 ...

  9. jsp前端实现分页代码

    前端需要订一page类包装,其参数为 private Integer pageSize=10; //每页记录条数=10 private Integer totalCount; //总记录条数 priv ...

随机推荐

  1. 2016.02.02 JS事件

    今天看完JS事件部分,所剩时间不多,务必分秒珍惜.

  2. 判断Ie浏览器

    ie8以下 if(!+[1,]) if(window.attachEvent){ alert("ie")}else if(window.addEventListener){aler ...

  3. 修改Tomcat根目录

    在server.xml文件中找到</Host>标签,在之前加入这样一行:<Context path="" docBase="F:/MyWeb" ...

  4. An unknown error occurred & “”的 iPhone is busy: Processing symbol files

    An unknown error occurred & ""的 iPhone is busy: Processing symbol files An unknown err ...

  5. 03-JAVA方法

    答:我发现这两个方法的返回类型以及参数类型不一样. package 汉诺塔问题; /**汉诺塔问题*作者:徐浩军 日期:16.10.16 天气:晴*/ public class TowersOfHan ...

  6. JVM调优-关于jvm的一些基本概念

    1.数据类型 java体系中,数据类型可分为2类:基本类型和引用类型.基本类型保存变量原始值,即:他代表的值就是数值本身: 而引用类型的变量保存引用值."引用值"代表某个对象的引用 ...

  7. 問題排查:在 ServiceModel 客戶端配置部份中,找不到名稱 和協定 的終結點元素。

    同樣都是刪掉服務參考再重建重編譯重發行,為什麼之前幾次都沒事? 這次只不過是刪掉服務參考,然後換了個名稱重建而已,做完就變這樣? 後來發現問題出在 app.config,因為之前 app.config ...

  8. js资源

    http://www.oschina.net/p/ace-editor https://git.oschina.net/pandao/editor.md/blob/master/editormd.js ...

  9. eclipse 的操作

    1.windows->Preferences...打开"首选项"对话框,左侧导航树,导航到general->Workspace,右 侧Text file encodin ...

  10. c# 程序检测日志输出的类

    public class LogWrite     {         public LogWrite()         {             //             // TODO:  ...