[ create a new paste ] login | about

Link: http://codepad.org/0xazNy9b    [ raw code | output | fork ]

C, pasted on Nov 1:
#include <stdio.h>

int runlength(int length, char *str_org, char* str_enc){

    /* ここに解答を書き加える */
    int  i = 1;

    while(*str_org) 
        if (*str_org == *(str_org + 1)) {   /*str_orgと次のオブジェクトが等しければiをインクリメント*/
            i++;                                             
            *str_org++;           /*str_orgは1つ後のオブジェクトを指す*/
        }
        else {
            *str_enc++ = *str_org;     /*文字を代入*/
            printf("i = %d\n", i);     /*debug*/
            *str_enc++ = (char*)i;            /*等しかった数iを代入*/
            i = 1;              /*iを初期化*/
            *str_org++;         /*str_orgは1つ後のオブジェクトを指す*/
        }
    *str_enc = '\0';    /*配列の最後にナル文字を代入*/
    /* 解答ここまで */
}


int main(void){
  char buf_r[1024] = {"aaaaaabbbcc"};
  char buf_w[1024] = {0};
  int length;
  
  printf("文字列の入力\n");
  scanf("%s",buf_r);
  runlength(1024,buf_r,buf_w);
  printf("[ランレングス符号化]\n%s\n",buf_w);
  return(0);
}


Output:
1
2
3
4
5
6
文字列の入力
i = 6
i = 3
i = 2
[ランレングス符号化]
abc


Create a new paste based on this one


Comments: