字符串压缩C语言指针函数
时间: 2023-06-27 21:05:22 浏览: 177
C语言–压缩字符串
5星 · 资源好评率100%
下面是一个简单的字符串压缩 C 语言指针函数的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* compress(char* str) {
int len = strlen(str);
if (len < 2) {
return str;
}
char* result = (char*) malloc(len + 1);
int count = 1;
char last = str[0];
int j = 0;
for (int i = 1; i <= len; i++) {
if (str[i] == last) {
count++;
} else {
result[j++] = last;
if (count > 1) {
char buf[16];
sprintf(buf, "%d", count);
int k = 0;
while (buf[k] != '\0') {
result[j++] = buf[k++];
}
count = 1;
}
last = str[i];
}
}
result[j] = '\0';
return result;
}
int main() {
char str[] = "abbccccccde";
char* result = compress(str);
printf("%s\n", result);
free(result);
return 0;
}
```
该函数接受一个指向字符串的指针,并返回压缩后的字符串。函数的实现过程是遍历字符串,计算连续相同字符的数量,将字符和数量存储在一个新的字符串中。如果字符只出现一次,则只存储该字符,否则存储字符和数量。最后,返回压缩后的字符串指针。
使用该函数的示例代码在主函数中给出。运行该程序将输出 "ab2c6de",即字符串 "abbccccccde" 的压缩形式。注意,在使用完返回的字符串指针后,应该释放内存以避免内存泄漏。
阅读全文