我正在尝试制作一个对提供给用户的输入字符串进行 RLE 压缩的程序,但是当我尝试运行它时,我遇到了分段错误,但我不知道我的错误在哪里......
这是我的代码:
#include <stdio.h>
#include <string.h>
char * rle_convert(char str[500]);
char str_out[500];
int main(void) {
char str[500];
printf("give a string : ");
fgets (str, 500, stdin );
strcpy(str,rle_convert(str));
printf("%s",str);
}
char * rle_convert(char str[500]) {
int i,j,k=0,sum;
for (i=0; i<(strlen(str)-1); i+sum) {
sum=1;
for (j=i; str[j]==str[j++]; j++ ) sum++;
if (sum>1) {
str_out[k]=sum+48;
str_out[k++]=str[i];
}
else str_out[k]=str[i];
k++;
}
return str_out;
}