ユーザーに提供する入力文字列に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;
}