算法题:压缩任意字符串

来源:互联网 发布:快速排序 java 编辑:程序博客网 时间:2024/06/05 20:58
//通过键盘输入一串任意字符串。//请编写一个字符串压缩程序,将字符串中连续出//席的重复字母进行压缩,并输出压缩后的字符串。/*如:输入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;}
1 0
原创粉丝点击