gpt4 book ai didi

c - C中的RLE算法

转载 作者:行者123 更新时间:2023-11-30 17:47:30 24 4
gpt4 key购买 nike

首先,英语不是我的主要语言。我是 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++;
}
}

但是当我第二次使用 itoaint 转换为字符串时,当它完成对 'y' 的计数时,itoa code> 覆盖 RLE 字符串。为什么会这样,我该如何解决?

最佳答案

下面的代码对我有用。做了一些更改以使其编译并运行。

void StringRLE(char *pointer)
{
char *rle = new char[strlen(pointer)];

int i=0;
int rleCount = 1;
char *s = pointer+1, ch[2] = {0,0};
while(*pointer!= '\0')
{
if(*pointer==*s)
rleCount++;
else
{
itoa(rleCount, rle, 10);
ch[0] = *pointer;
strcat(rle, ch);
puts(rle);
rleCount = 1;
}

pointer++;
s++;
i++;
}
}

关于c - C中的RLE算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18916644/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com