#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. mysql 不允许连接

    错误提示: ERROR 1130: Host '192.168.1.1' is not allowed to connect to this MySQL server的解决方法: 1.改表法.可能是你 ...

  2. ZOJ3778--一道水题

    Description As we all know, Coach Gao is a talented chef, because he is able to cook M dishes in the ...

  3. 【BZOJ1812】riv(多叉树转二叉树,树形DP)

    题意:给定一棵树,每个点有权值,每条边有边权(单向边).你可以选取K个黑点,使得从每个点移动到距离他最近的黑点的花费(距离*点权)的总和最小. n<=100 k<=50 w[i],a[i] ...

  4. Bridge(桥接)-对象结构型模式

    1.意图 将抽象部分与它的实现部分分离,使它们都可以独立地变化. 2.动机 在抽象类与它的实现之间起到桥梁作用,使它们可以独立地变化. 3.适用性 不希望在抽象和它的实现部分之间有一个固定的绑定关系. ...

  5. 使用引脚模拟PWM波控制引脚

    /********************************* 代码功能:输出PWM波控制引脚 使用函数: 创作时间:2016*10*07 作者邮箱:jikexianfeng@outlook.c ...

  6. reason: '-[__NSCFNumber rangeOfCharacterFromSet:]: unrecognized selector sent to instance

    类型的不匹配,把类型转化对应的数据类型,例: model.price 是模型数据,其值为1550: cell.label.text = [NSString stringWithFormat:@&quo ...

  7. ubuntu工具积累

    1.sudo apt-get install terminator一款可以切分终端窗口的工具 a.在系统>键盘>快捷键修该ctrl+alt+t快捷应用为terminator,其他的快捷键同 ...

  8. C++ STL中vector(向量容器)使用简单介绍

    原文:http://www.seacha.com/article.php/knowledge/cbase/2013/0903/2205.html C++ vector(向量容器)是一个线性顺序结构.相 ...

  9. NOIP2011 题解

    铺地毯 题解:比大小 #include <cstdio> +; int n, x, y, a[MAXN], b[MAXN], g[MAXN], k[MAXN]; inline int So ...

  10. jquery实现TODOList

    html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <titl ...