忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


2026/06/25 07:17 |
圧縮 ☆ランレングス法☆ 其の弐
さてと、とりあえずC言語を使って書いてみることにしました。
コンパイラーは「Borland C++ 5.5.1」を使用することにします。

ただ・・・10文字以上連続したときにうまく表示されないので、修正せねばいけませぬ。
.・゜゜・(/。\)・゜゜・.
とりあえず、うまくは動いているものの、雑誌に出ていた擬似言語を自分なりに書いただけなので、何もない状態から作れといわれても・・・つ・く・れ・な・い・と思うのです(;´д` )

これが、初心者プログラマーの悩みどころなのよね。しかし、書かなければ始まらない!!もっといいものに仕上げるぞい。

ここからソース
/********************************/
/* ランレングス 圧縮 */
/* ver 0.0.1 */
/* build 20060818.1 */
/* 連続する文字列は9文字以内 */
/********************************/
#include‹stdio.h›
#include‹string.h›

int main(void)
{
char s[128],p[128],q[20];
int i,j,c;

printf("\n***** ランレングス圧縮プログラム ver0.0.1 *****\n\n");
printf("文字列を入力してください.(但し,連続する文字列は9文字以内)\n");
gets(s);

i=0;
j=0;
c=1;

while(s[i]!='\0'){
i=i+1;
if(s[i-1]!=s[i]){
if(c<=2){
while(c!=0){
p[j]=s[i-c];
c=c-1;
j=j+1;
}
}
else{
p[j]='@';
sprintf(q,"%d",c);
p[j+1]=q[0];
p[j+2]=s[i-1];
j=j+3;
}
c=1;
}
else{
c=c+1;
}
}

p[j]='\0';

printf("圧縮前の文字列=%s\n",s);
printf("圧縮後の文字列=%s\n",p);

printf("\n何かキーを押してください.");
gets(q);
return 0;
}

それでは実行結果
***** ランレングス圧縮プログラム ver0.0.1 *****

文字列を入力してください.(但し,連続する文字列は9文字以内)
aaaaaabbccccc
圧縮前の文字列=aaaaaabbccccc
圧縮後の文字列=@6abb@5c

何かキーを押してください.

PR

2006/08/17 05:54 | Comments(0) | TrackBack() | プログラム

トラックバック

トラックバックURL:

コメント

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字 (絵文字)



<<圧縮 ☆ランレングス法☆ 其の参 | HOME | 圧縮 ☆ランレングス法☆ 其の壱>>
忍者ブログ[PR]