// 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。
// 压缩规则:
// 1、仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc"。
// 2、压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"。
//#include
#include using namespace std;void stringZip(const char *pInputStr, long InputLen, char *pOutputStr)
{assert(pInputStr != NULL);const char *p = pInputStr ;int *q = new int[InputLen +1] ;int i = 0;int count = 1;pOutputStr[i++] = *p ;p++ ;while (*p != '\0'){if ( *p == pOutputStr[i-1] ){count++;p++;}else{pOutputStr[i++] = '0' + count%10;pOutputStr[i++] = *p ;count = 1;p++;}}pOutputStr[i++] = '0' + count%10;pOutputStr[i] = '\0';
}int main( )
{char input[] = "cdeca" ;char *output = new char[strlen(input)+1] ;stringZip(input, strlen(input), output );cout << output <
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!