4.编写一个函数要求实现一个字符串压缩的过程。压缩规则是:如果某个字符x连续出现n(n>1)次,则将这n个字符x替换为nx的形式;否则保持不变。 函数声明可以为: void strzip(char* p,char *zp); 可以按如下形式设计程序: #include <iostream> using namespace std; void strzip(char* p,char *zp) { … } int main() { char str1[100] = "HelloWorldddddC++MATLABBBBBBBBBBB"; char str2[100]; strzip(str1, str2); cout <<str2<< endl; return 0; }
时间: 2024-01-29 07:02:37 浏览: 87
压缩和解压缩字符串
5星 · 资源好评率100%
好的,我明白了。以下是实现字符串压缩的函数代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
void strzip(char* p, char* zp) {
int len = strlen(p);
int count;
char c;
int idx = 0;
for (int i = 0; i < len; i++) {
c = p[i];
count = 1;
while (c == p[i + 1]) {
count++;
i++;
}
if (count > 1) {
zp[idx++] = c;
zp[idx++] = '0' + count;
} else {
zp[idx++] = c;
}
}
zp[idx] = '\0';
}
int main() {
char str1[100] = "HelloWorldddddC++MATLABBBBBBBBBBB";
char str2[100];
strzip(str1, str2);
cout << str2 << endl;
return 0;
}
```
这个函数的实现方法是:遍历输入的字符串,统计每个字符连续出现的次数,如果次数大于1,则将该字符和次数一起写入输出字符串;否则,只将该字符写入输出字符串。最后,将输出字符串结尾加上`\0`,表示字符串的结束。
阅读全文