//通过键盘输入一串任意字符串。
//请编写一个字符串压缩程序,将字符串中连续出
//席的重复字母进行压缩,并输出压缩后的字符串。
/*
如:输入AABBCC,输出2A2B2C;输入,,,..,输出3,2.。
*/
#include <iostream>
#include <string.h>
#include <stdlib.h>
using namespace std;
void Grial(char *src)
{
char *Pnext = src;
char *Prve = src;
//我选则在原来的字符串上进行修改,使用快慢指针,
//避免开辟额外的空间。
char *p = Prve;
int count=0;
while (*Pnext != '\0')
{
char ch = *Pnext;
while(ch == *Pnext)
{
count++;
Pnext++;
}
char *s = new char[count];
itoa(count,s,10);
count = 0;
while (*s)
{
*Prve = *s;
Prve++;
s++;
}
*Prve++ = ch;
}
*Prve = '\0';
}
int main()
{
char cinbuff[255];
cin >> cinbuff;
Grial(cinbuff);
cout << cinbuff << endl;
return 0;
}
算法题:压缩任意字符串
最新推荐文章于 2024-07-04 11:30:45 发布