华为机试题—字符串压缩 c++
2016-07-08 21:33
369 查看
/* 将字符串压缩 通过键盘输入一串小写字母(a~z)组成的字符串。 请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉 */ #include <iostream> #include<string> using namespace std; void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr) { int i=0,j=0; int m=0; int n=0; char temp[50]; //cout<<strlen(pInputStr); while(pInputStr[i]!='\0') { for(j=i+1;;j++) { if(pInputStr[j]!=pInputStr[j-1]) { m=j-i; itoa(m,temp,10); if(m>1){ for(int t=0;temp[t]!='\0';t++) pOutputStr[n++]=temp[t]; } pOutputStr[n++]=pInputStr[i]; j--; break; } } i=j; i++; } } int main() { //char input[100]; char* input = new char[100]; //cin.getline(input,100); gets(input); char out[100]="\0"; int n=20;//最大长度 stringZip(input,n,out); int len=strlen(out);//并不是预先设定的大小 for(int i=0;i<len;i++) cout<<out[i]; cout<<endl; delete []input; }
相关文章推荐
- 提高项目27.2解密
- (巩固基础篇)排序算法:①插入排序②希尔排序③冒泡排序④选择排序⑤快速排序
- C语言学习笔记_6编译预处理
- 提高项目27.1-字符加密
- C语言中关于内存这个话题
- c语言,字符串转换成整数
- C语言学习笔记_5函数与程序结构
- 浅谈C++ STL中的优先队列(priority_queue)
- c++实现银行家算法
- 华为机试题—大数相减-c++
- Round C APAC Test 2016
- 学习笔记 C++ 链表
- 【C++11】新特性——引入nullprt
- 1097. Deduplication on a Linked List (25)(段错误)
- c++ String 类函数详解
- C++临时变量的生命周期
- 学习ACM之路-大数的幂运算
- 个人记事本
- C++ primer (2) —— 基础
- C++内存分布之菱形继承(无虚函数)