まず、英語は私の第一言語ではありません。私はCが初めてで、私のタスクの1つは、特定のケースでRLEアルゴリズムを実行しています。これは、次のような条件でのみカウントされます:
'aaabb'
'bbbrr'
'ggskkkk'
など... このケースでは: 'aaaaaayyy'
、このコードを実行しました:
void StringRLE(char *pointer)
{
char rle[strlen(pointer)];
int i=0;
int rleCount =1;
char *s = pointer+1,ch;
while(*pointer!= '\0')
{
if(*pointer==*s)
rleCount++;
else
{
itoa(rleCount, rle, 10);
ch = *pointer[i];
strcat(rle, ch);
puts(rle);
rleCount = 1;
}
pointer++;
s++;
i++;
}
}
しかし、2 回目itoa
に my を文字列に変換するために使用してint
いる場合、'y' のカウントが完了するとitoa
、RLE 文字列がオーバーライドされます。なぜ、どうすれば解決できますか?