行程编码(atoi函数)
1 #include<iostream> 2 #include<string> 3 #include<vector> 4 using namespace std; 5 void jiema(string s) 6 { 7 cout << "解码之后为:" << endl; 8 for(int i = 0; i < s.size(); i++) 9 { 10 if(s[i + 1] == '*') 11 { 12 int j = i + 1; 13 int len = 0; 14 while(s[j + 1] >= 48 && s[j + 1] <= 57) 15 { 16 len++; 17 j = j + 1; 18 } 19 string temp = s.substr(i + 2, len); 20 int num = atoi(temp.c_str()); 21 for(int k = 0; k < num; k++) 22 { 23 cout << s[i]; 24 } 25 i = j; 26 } 27 else 28 { 29 cout << s[i]; 30 31 } 32 } 33 }34 void bianma(string s) 35 { 36 vector<char>A; 37 int p = 1; 38 int j = 0; 39 for(; j < s.size();) 40 { 41 while(s[j] == s[j + 1] && j < s.size()) 42 { 43 p++; 44 j = j + 1; 45 } 46 if(p >= 4) 47 { 48 A.push_back(s[j]); 49 A.push_back('*'); 50 A.push_back(p); 51 p = 1; 52 j = j + 1; 53 } 54 else if(p < 4) 55 { 56 for(int k = 0; k < p; k++) 57 { 58 A.push_back(s[j]); 59 } 60 p = 1; 61 j = j + 1; 62 } 63 } 64 cout << "编码之后为:" << endl; 65 for(int b = 0; b < A.size(); b++) 66 { 67 if(A[b] >= 0 && A[b] <= 9) 68 cout << int(A[b]); 69 else 70 cout << A[b]; 71 } 72 cout << endl; 73 cout << "压缩比为:" << endl; 74 double y = double(A.size()) / s.size(); 75 cout << y << endl; 76 } 77 void main() 78 { 79 cout << "请输入代码:①代码中含有数字表示需要解码解压缩②代码中不含数字表示需要编码压缩" << endl; 80 string s; 81 for(; cin >> s;) 82 { 83 int i = 0; 84 for(; i < s.size(); i++) 85 { 86 if(s[i] >= 48 && s[i] <= 57) //解码 87 { 88 jiema(s); 89 break; 90 } 91 } 92 if(i == s.size()) 93 { 94 bianma(s); 95 } 96 } 97 }
转载于:https://www.cnblogs.com/allenben/p/3633772.html
行程编码(atoi函数)相关推荐
- 编写实现atoi函数
题目:给定一个字符串,要求转成整数,不允许使用atoi或者其它类似库函数. 方案:实现这个函数并不难,但是要考虑以下几个问题 1.考虑字符串为空指针的时候 2.考虑字符串为空串 ...
- C语言atoi()函数用法
C语言atoi()函数用法 头文件:#include <stdlib.h> atoi() 函数用来将字符串转换成整数(int),其原型为: int atoi (const char * s ...
- atoi()函数定义
原型:int atoi (const char *nptr) 用法:#include <stdlib.h> 功能:将字符串转换成整型数:atoi()会扫描参数nptr字符串,跳过前 ...
- C语言atoi()函数(字符串转整数int类型)(atol()转换为long)
需包含头文件:C 标准库 - <stdlib.h> 文章目录 描述 声明 参数 返回值 实例 在windows VS上测试 20211206 用atoi转换long,发现溢出了 描述 C ...
- linux中atoi函数的实现 值得借鉴,【转】atoi()函数的实现
atoi()函数的功能:将字符串转换成整型数:atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时('\0')才结束转化,并将结果返回( ...
- C语言中atoi()函数的用法
C语言中atoi()函数的用法 一.学习要点: 1.int atoi(const char *str)把参数str所指向的字符串转换为一个整数: 二.代码 #include<stdio.h> ...
- Linux下main函数带参数问题和atoi函数详解
1.main函数带参数 基本格式:main(int argc,char * argv[]) argc参数保存命令行参数的个数,是整形变量 具体用法可有如下代码看下: a1.c: #include &l ...
- atoi函数_吊打面试官 | 腾讯经典考点写代码实现atoi函数
点击蓝字关注我哦 以下是本期干货视频视频后还附有文字版本哦 ▼<腾讯经典考点-写代码实现atoi函数>▼ ps:请在WiFi环境下打开,如果有钱任性请随意 在腾讯面试时,经常会被问到如何用 ...
- C语言atoi()函数:将字符串转换成int(整数)和sprintf和memset
atoi()函数 #include <stdio.h> #include <stdlib.h>int main () {int i;char buffer[256];print ...
- C atoi函数
作用 atoi()函数将数字格式的字符串转换为整数类型.例如,将字符串1253124127转换成数字1253124127. 注意 首要注意 atoi函数可以转化如下这种字符串 1fdafhdjfhka ...
最新文章
- 如何在SAP Cloud for Customer自定义BO中创建访问控制
- 底层实现红黑树_stl map底层之红黑树插入步骤详解与代码实现 | 学步园
- Android官方开发文档Training系列课程中文版:OpenGL绘图之环境配置
- 怎样查询2021高考模拟成绩,2021年高三一模二模三模哪个成绩更接近高考成绩,看看网友是怎么评论...
- java开发实战经典
- Java网络编程之NIO编程(待补充)
- GitHub 免费开放开发者计划,增加系列新优势
- IDEA Java开发常用插件
- 2019蓝桥杯C++B组 年号字串;完全二叉树的权值
- Xception: DeepLearning with Depthwise Separable Convolutions2017Google【论文理解】
- 2022年上半年系统分析师上午真题及答案解析
- 微信小程序:宝宝起名神器
- 八皇后问题python_八皇后问题 Python实现
- 【19C】logmnr参考
- 电路设计中晶体和晶振的区别
- opengl 着色器
- Tiled创建六边形地图
- 银河麒麟踩坑笔记——打包QT程序
- Java day02:eclipse的部分快捷操作;单元测试;条件控制语句;补充的基础语法和代码小技巧
- 透彻理解“对数”概念及其在量化交易中的意义