C++ 字符串压缩

1.遍历字符串,判断相等计数后输出

#include "iostream"
#include "string.h"
using namespace std;

void zhuan(){
	string str;
	string sub;
    getline(cin, str);
    for(int i = 0; i < str.length(); i++)   //遍历字符串
    {
        int cnt = 1;   //用来记录重复字符数量
        while(str[i] == str[i+1])   //判断是不是字符串中的重复字符
        {
            i++;
            cnt++;
        }
        cout <<cnt<<str[i];   //压缩后的形式,先输出重复字符的个数+1,再输出重复字符
    }
}

2.字符串拼接

#include "iostream"
#include "string.h"
using namespace std;

void zhuan2(){
	string str; //要输入的字符串(原字符串)
	string zip; //压缩后的字符串
    getline(cin, str);  
    int n = 1;  //出现次数
    int len = str.length(); 
    for(int i=0; i<len; i++){
    	if(str[i] == str[i+1]){
    		n++;    //次数加加
		}else{
			string temp = to_string(n); //将整形次数转为string型
			zip+=str[i];
			zip+=temp;
			n = 1;  //重新赋值为1
		}
	}
	cout<<zip;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WGS.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值