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;
}