C语言实现字符串压缩:规则详解与代码示例
```c #include <stdio.h> #include <string.h> #define maxs 20 void zip( char *p ) { int len = strlen(p); // 获取字符串长度 int i = 0, j = 0; // 两个指针,i 用于遍历原始字符串,j 用于构建压缩后的字符串 while (i < len) { int count = 1; // 统计相同字符连续出现的次数 while (i + 1 < len && p[i] == p[i + 1]) { // 找到连续相同的字符 count++; i++; } if (count > 1) { // 如果连续次数大于 1,进行压缩 p[j++] = p[i]; p[j++] = count + '0'; // 将数字转换为字符存储 } else { // 否则直接复制原字符 p[j++] = p[i]; } i++; } p[j] = '\0'; // 结束字符串 } void readstring( char *s ) { scanf("%s", s); } int main() { char s[maxs]; readstring(s); zip(s); printf("%s\n", s); return 0; } ``` 额外需要注意的逻辑点: 1. 注意字符串结束符的处理,确保压缩后的字符串正确结束。 2. 处理连续字符时,要准确计算连续的次数。 3. 注意指针的移动,避免越界访问。 ######[AI写代码神器 | 360点数解答 | 2024-12-06 09:55:06]
- C++ 求解:最少操作次数让字符串无子串 “friend” (字节豆包 | 153点数解答 | 2024-08-17 16:29:54)478
- C++ 求解:最少操作次数让字符串不再含 “friend” 子串!(讯飞星火 | 260点数解答 | 2024-08-17 16:30:49)465
- Python 巧解:最少操作次数让字符串告别“friend”子串(字节豆包 | 139点数解答 | 2024-08-18 13:04:14)401
- 3414 数字游戏:Python 求解 8 位 01 字符串中 1 的个数 (字节豆包 | 106点数解答 | 2024-10-27 14:23:27)426
- 巧用字符添加,计算字符串中“our”最大数量及开发注意要点(DeepSeek | 376点数解答 | 2025-10-30 19:20:06)80
- C 语言实现:处理字符串生成最多 “our” 串,附代码及关键开发注意点 (DeepSeek | 257点数解答 | 2025-10-30 19:20:36)108
- Java实现链表反转:迭代与递归双解法详解及开发实战指南(DeepSeek | 1409点数解答 | 2026-03-15 15:09:29)24
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)345
- Java 利用 Apache Commons Imaging 压缩 PNG 图片至指定大小,附代码及注意事项(阿里通义 | 524点数解答 | 2024-02-27 13:54:15)297
- 深度揭秘 Oracle Workarea Size Policy:参数调优助力数据库性能飞升(阿里通义 | 372点数解答 | 2024-05-13 10:54:45)229
- 探寻数组中最长摆动子序列长度:思路剖析与代码优化(GPT | 758点数解答 | 2024-12-23 23:18:29)266
- 独家剖析:求解数组最长摆动子序列长度的代码实现与改进建议(GPT | 350点数解答 | 2024-12-23 23:20:54)263