Saturday, September 20, 2014

C Programming : Run Length Encoding for a given string


int main()
{
int cnt = 0;
int j = 0,i = 0,k=0;
char str[1000] = "llllggg$$$$$$(((((((@@@@@@@aaiiiiiahaag;;;;;a,,,,,////)))gsssdsssggggggggkkkkkkjjj";

char str_enc[50];
char str_n[10] = {0};
char val = '\0';

val = str[0];
for(i = 0 ;str[i]!='\0'; i++) {
if(val == str[i]) {
cnt++;
} else {
val = str[i];
snprintf(str_n,8,"%d",cnt);
k = 0;
while(str_n[k] != '\0')
str_enc[j++] = str_n[k++];
str_enc[j++] = str[i-1];
memset(str_n,0,strlen(str_n));
cnt = 1;
}
}

snprintf(str_n,8,"%d",cnt);

k = 0;
while(str_n[k] != '\0')
str_enc[j++] = str_n[k++];
str_enc[j++] = str[i-1];
str_enc[j] = '\0';

memset(str_n,0,strlen(str_n));
printf("%s\n",str_enc);

}

OUTPUT
4l3g6$7(7@2a5i1a1h2a1g5;1a5,4/3)1g3s1d3s8g6k3j

No comments:

Post a Comment