int bit_to_ascii(const char core[], char data[]) { int i, byte[7],n = 0, code = 0, bit = 7, skip = 0, repeat = 0, repeat_num; char rep[3]; for(i = 0; i < (strlen(core) - 1); i++) { if(core[i] == 'S' && core[i+1] == 'K' && core[i+2] == 'P') { while(skip < 8) { if(core[i] == '1' || core[i] == '0') skip++; i++; } skip = 0; } else if(core[i] == 'R' && core[i+1] == 'P' && core[i+2] == 'T') { int z, y = 0; z = i + 3; while(is_int(core[z]) == 1) { rep[y] = core[z]; rep[y + 1] = '\0'; z++; y++; } repeat_num = atoi(rep) - 1; for(repeat = 0; repeat < repeat_num; repeat++) { data[n] = data[n - 1]; n++; } code = 0; repeat = 0; bit = 7; i = i + 6; } if(core[i] == '1' || core[i] == '0') { if(core[i] == '1') { code = code + exponent(2, (bit)); } bit--; if(core[i+1] == 'R' && core[i+2] == 'P' && core[i+3] == 'T') { bit = -1; } if(bit == -1) { if(/*code == 0 || */(code > 31 && code < 127)) { data[n] = code; n++; code = 0; } else if(code > 0 && code <= 31) { code = 0; } bit = 7; } } } if(bit != -1) { data[n] = code; n++; bit = 7; } return n; }