/*----------------------------------------------------------------------
【程序设计】
------------------------------------------------------------------------
编写一个 C 语言程序,输入由中括号 [数字和小写字母]组成且无中括号嵌套的字
符串。规则如下:[nx](n 为正整数,x 为小写字母)表示将 x 重复 n 次;[nxy]
(n 为正整数,x、y 为小写字母)表示将 xy 重复 n 次。实现 fun 函数对输入
字符串解码并生成原始字符串。
示例1:
【请输入符合规则的字符串:】[5wh]
【原始字符串:】whwhwhwhwh
------------------------------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数 `main` 或其它函数中给出的内容,
仅在
Program-End 之间填入若干语句。
不要删除标志否则不得分。
不要修改或删除Program-End 之外的内容否则不得分。
----------------------------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *fun(char input[])
{
    int len = strlen(input);
    char *output = (char *)malloc(1000 * sizeof(char));
    if (output == NULL)
    {
        printf("内存分配失败!\n");
        return NULL;
    }
    int outputIndex = 0;
    /**********Program**********/
    int i,s,t;
    for(i=0;i<len;i++){
    	if(input[i]=='['){
    		i++;
    		s=0;
    		while(input[i] <'a'||input[i]>'z'){
    			s=s*10+(input[i] - 48);
    			i++;
			}
		}
		while(s>0){
			t=i;
			while(input[t] != ']'){
				output[outputIndex++] = input[t++];
			}
			s--;
		}
	}
	output[outputIndex] = '\0';
    /********** End **********/
    return output;
}
int main()
{
    char input[1000];
    printf("【请输入符合规则的字符串:】\n");
    scanf("%s", input);
    char *result = fun(input);
    if (result != NULL)
    {
        printf("【原始字符串:】%s\n", result);
        free(result);
    }
    return 0;
}