通过键盘输入一串小写字母(a~z)组成的字符串。
请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,
并输出压缩后的字符串。
压缩规则: 1. 仅压缩连续重复出现的字符。比如字符串
"abcbc"
由于无连续重复字符,压缩后的字符串还是
"abcbc"
.
2. 压缩字段的格式为
"字符重复的次数+字符"
。例如:字符串
"xxxyyyyyyz"
压缩后就成为
"3x6yz"
#include <iostream> #include <string.h> using namespace std; int main() { cout<<"请输入。。。"<<endl; char str[100]=""; char outstr[100]=""; cin.getline(str,100); int len=strlen(str); int i=0,j=0; int cnt=1; char c=str[0]; for(i=1;i<len;i++) { if(str[i]==c) { cnt++; } else { if(cnt==1) { outstr[j++]=c; } else { outstr[j++]=cnt+‘0‘; outstr[j++]=c; } c=str[i]; cnt=1; } } if(c != str[j-1]) { if(cnt == 1) { outstr[j++] = c; } else { outstr[j++] = cnt + ‘0‘; outstr[j++] = c; } } cout<<outstr<<endl; return 0; }
时间: 2024-10-12 21:56:39