#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. 生产者消费者模式--阻塞队列--LOCK,Condition--线程池

    1.阻塞队列:http://www.cnblogs.com/dolphin0520/p/3932906.html 2.Condition 生产者消费者实现 :http://www.cnblogs.co ...

  2. VC++ chap13 文档与串行化

    Lesson 13 文档与串行化 13.1使用CArchive类对文件进行读写操作 //让对象数据持久性的过程称之为串行化,或者序列化 void CGraphicView::OnFileWrite() ...

  3. MySQL Innodb的两种表空间方式

    要说表空间,MySQL的表空间管理远远说不上完善.换句话说,事实上MySQL根本没有真正意义上的表空间管理.MySQL的Innodb包含两种表空间文件模式,默认的共享表空间和每个表分离的独立表空间.只 ...

  4. shellcode流程

    shellcode就是汇编的opcode,一般以子函数形式出现: 取得shellcode的方便方式是: 1.写一个函数如: void __stdcall code(LONG &a, LONG ...

  5. 如何用expdp、impdp按表空间导出、导入?

    参考:http://blog.csdn.net/zftang/article/details/6387325 A数据库: 表空间:ylcois 用户名:ylcois 密码:ylcois B数据库: 表 ...

  6. delphi对象赋值

     Delphi的对象之间赋值主要要注意几个方面的问题:   1.对象之间的 :=赋值只是地址赋值,即是将当前对象的地址赋值到变量中,定义的变量可以是不用初始化的,在内存中两个变量指向的是同一地址空间: ...

  7. .NET Remoting获取配置通道:

    接上文: public static string ChannelManagerUrl        {            get            {                retu ...

  8. Select查询语句2

    一.模糊查询 1.语法结构 select*from table_name where column like '%context%' 在使用like运算符时如果不使用通配符“%”,则like的作用与= ...

  9. c语言中enum类型的用法

    11.10 枚举类型 在实际问题中,有些变量的取值被限定在一个有限的范围内.例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等.如果把这些量说明为整型,字符型或其它类型显然是不妥当的 ...

  10. html特殊字符转义问题(转!)

    html.javascript.url特殊字符转义在实际编程中都是有用到的,有的人对特殊字符转义的使用不是很清楚,下面就对html,javascript,url特殊字符的转义做一下说明和归纳. htm ...