编写一个函数void strcompress(char *s),输入一个字符串(只包含小写字母和空格,且长度小于1000),然后采用如下的规则对该字符串当中的每一个字符进行压缩:
(1) 如果该字符是空格,则保留该字符。
(2) 如果该字符是第1次出现或第3次出现或第6次出现,则保留该字符。
(3) 否则,删除该字符。
例如,若用户输入occurrence,经过压缩后,字符c的第2次出现被删除,第1和第3次出现仍保留;字符r和e的第2次出现均被删除,因此最后的结果为:ocurenc。
编写main函数测试该函数的正确性。
输入:
occurrence
输出:
ocurenc
#include<iostream>
#include<string.h>
using namespace std;
int main() {
char str[1001];
int time[1001] = {0};
cin.get(str, 1001);
int len = strlen(str);
for (int i = 0; i < len; i ++) {
int temp = str[i] - '0';
time[temp]++;
if (str[i] != ' ') {
if (time[temp] != 1 && time[temp] != 3 && time[temp] != 6) {
continue;
}
}
cout << str[i];
}
return 0;
}
总结:
把每个字符对应的整数找到,用一个数组来存,然后排除特殊情况,正常就直接输出