我写了一段代码,但我无法获得所需的输出。我犯了一些错误,但无法追查到底是什么。 以下是我的代码。方法。通过计算连续的字母来编码字符串。例如:“a2b2a2d3c1”
#include<stdio.h>
#include<string.h>
int main()
{
char c[] = "aabbaadddc",*ptr = c,prev,t[10],*tptr = t;
int i,j,count = 0;
while(*ptr != '\0') {
prev = *ptr;
count = 0;
while(*ptr == prev) {
count++;
ptr++;
}
*tptr = prev;
tptr++;
*tptr = (char)count;
tptr++;
}
*tptr = '\0';
printf("%s\n", t);
return 0;
}
我期待t字符串中的“a2b2a2d3c1”。我想知道我的错误。
是的,如果出现超过10次的字符,我们会得到不正确的结果,请问是什么原因? – Megharaj
@Megharaj因为你处理字符。要写数字'10',你必须写2个字符。其实这取决于你的任务。如果你知道它永远不会发生,只需分配足够大的char数组来存储所有新字符。如果您需要编写安全功能,请查看我的更新。 – Deck
非常感谢。这帮助了我。 – Megharaj