我需要创建一个函数:
char * decompress(const char * src) {
}
此函数的输入是某个字符串:
Hello world! -> Hello world!
Hel2o world!10" -> Hello world!!!!!!!!!!
正如您所看到的,如果有某个数字,它会重复前一个字符这个数字次。我是一名Java程序员,但现在我需要在C语言中解决这个问题。
我现在有这个代码。它只打印结果,但我不知道如何将其分配给返回指针。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <assert.h>
char * decompress(const char * src) {
int max = 0;
int pom = 1;
char *vysledek = "";
int i;
for (i = 0; i < strlen(src); i++) {
max = 0;
pom = 1;
while (isdigit(src[i])) {
int digit = (src[i] - '0');
max = max * 10 + digit;
i++;
pom++;
}
if (max == 0) {
max = 1;
}
int j;
for (j = 0; j < max; j++) {
printf("%c", src[i - pom]);
}
}
return vysledek;
}
int main(int argc, char * argv []) {
decompress("Hel2o world!10");
return 0;
}
for
循环的第一次迭代中,内层for
循环打印了src[-1]
。 - Spikatrix