首先,英语不是我的主要语言。我是 C 新手,我的任务之一是在特定情况下执行 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++;
}
}
但是,当我第二次itoa
将我int
的字符串转换为字符串时,当它完成对“y”的计数时,itoa
会覆盖 RLE 字符串。为什么,我该如何解决?