#include<iostream>
using namespace std;
int main()
{
int i, j, k, l, n, sum = 1; //j,l用以计数,n用来接收输入的条数,sum用来保存字母出现的次数
char content[20][50]; //定义二维的字符数组
cout << "请输入你要记录的内容的条数:";
cin >> n; //接收条数
cout << "请输入你要记录的内容:" << endl;
for (i = 0; i <= n-1; i++) //一行一段字符,n-1行
{
for (j = 0; j <= 49; j++) //每行内容的每一个字母
{
cin >> content[i][j]; //接收每行内容的每一个字母
if (content[i][j] == '\n') //当按下回车时,做以下的操作
{
k = j - 1; //K记录下'\n'的前一个的下标
for (l = 1; l <= k; l++) //循环1到K之间的某一行里的每一个字符
{
if (content[i][l] == content[i][l - 1]) //如果当前值与前一个值相同
{
sum++; //sum加1
}
else
{
cout << content[i][l - 1]; //否则输出前1个值
if (sum!=1) //如果sum=1话不输出数字,例如ABBCCC 效果为AB2C3
cout << sum; //输出sum
sum = 1; //初始化sum=1
}
}
break; //跳出这一行的内容
}
}
}
return 0;
}
现在没有办法跳出.各位大神帮忙看看,无尽感激
这是题目
问题描述:
小明在一次机密的场合中无意中看到自己所需要的信息。但他只能在一张标签的空白处记下这些信息,位置不够。于是他想了一种方法:对连续重复的部分用数字表示。没有连续重复的字符就不变。如ABBBCC,表示为AB3C2。
输入描述:输入的每行是一个有字母构成的字符串。
输出描述:输出是压缩后的字符串。
输入样例:
3
ABBBCC
MMMN
DDDFFF
输出样例
AB3C2
M3N
D3F3
http://www.docin.com/p-100963288.html
#include
using namespace std;
int main()
{
int n=0;
int i,j;
string s;
while(cin>>n)
{
while(n--)
{
cin>>s;
string r="";
r+=s[0];
char temp;
int sum=1;
temp=r[r.length()-1];
for(i=1;i {
if(s[i]==temp)
{
sum++;
}
else
{
temp=s[i];
if(sum>1)
{
r+=char(sum+'0');
r+=temp;
sum=1;
}
else
{
r+=temp;
}
}
}
if(sum>1)
{
r+=(char)(sum+'0');
sum=1;
}
cout<<r<<endl;
}
}
return 0;
}