让用户输入的长度编码,C语言
时间: 2024-10-28 19:15:08 浏览: 10
CRC.rar_crc编码c语言
在C语言中,让用户输入一个字符串然后进行长度编码,可以利用`fgets()`函数获取用户的输入,并结合之前提到的运行长度编码(RLE)方法。这里给出一个简化的示例程序:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LENGTH 100
void run_length_encoding(const char *input, char *encoded) {
int len = strlen(input);
for (int i = 0, prev_char = '\0'; i < len; i++) {
if (prev_char == input[i]) {
encoded[i] = prev_char;
encoded[++i] = len - i; // 当前连续字符的数量
} else {
encoded[i] = input[i];
prev_char = input[i];
}
}
encoded[len + 1] = '\0'; // 结束符
}
int main() {
char input[MAX_LENGTH], encoded[MAX_LENGTH * 2]; // 预估编码可能比输入长一倍
printf("请输入一个字符串: ");
fgets(input, sizeof(input), stdin); // 获取用户输入,包括换行符
input[strcspn(input, "\n")] = '\0'; // 清除换行符
run_length_encoding(input, encoded);
printf("原字符串: %s\n", input);
printf("长度编码后的字符串: %s\n", encoded);
return 0;
}
阅读全文