所以基本上我的問題是我想要解壓縮函式來對“printf("%.*s", repeat, memset(set, c, repeat)); 的輸出進行簽名 陣列 dest 并將此 dest 回傳到 main 并將其簽名到 Decompressed_Message
這是我的問題的影像

我希望第一個解壓版本:和第二個完全相同。但是即使我嘗試過sprintf()我也無法如我所愿
這是我的代碼
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <ncurses.h>
char* Compression(char* Message, int given_count)
{
int Len;
char count[given_count];
int length = strlen(Message);
char* destination = (char*)malloc(sizeof(char) * (length * 2 1));
int i;
int j=0;
int k;
for (i = 0; i < length; i ) {
destination[j ] = Message[i];
Len = 1;
while (i 1 < length && Message[i] == Message[i 1]) {
Len ;
i ;
}
sprintf(count, "%d", Len);
for (k = 0; *(count k); k , j ) {
destination[j] = count[k];
}
}
destination[j] = '\0';
return destination;
free(destination);
}
char* Decompression(char *Compressed_Message, char* Message){
int length = strlen(Message);
char* dest = (char*)malloc(sizeof(char) * (length * 2 1));
while(*Compressed_Message){
int repeat = 0;
char c = *Compressed_Message ;
while(isdigit(*Compressed_Message))
{
repeat = repeat*10 *Compressed_Message - '0';
}
char set[repeat];
printf("%.*s", repeat, memset(set, c, repeat));
memset(dest, c, repeat);
}
dest[length] = '\0';
return dest;
free(dest);
}
int main(void) {
int letters;
float compression_odd;
printf("Data compressor and decompressor\n\n");
FILE *file;
char filename[100]="";
printf("\n\nPlease Enter the name of file: ");
scanf("
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/391622.html
上一篇:是否可以將這種默認值添加到Caesarcypherpython中?
下一篇:在R中的函式中使用匿名函式
