Programme de Compression en C

Je veux compresser une série de caractères. Par exemple, si je tape

D'entrée : FFFFFBBBBBBBCCBBBAABBGGGGGSSS (27 x 8 bits = 216 bits)
Sortie: F5B7C2B3A2B2G5S3 (14 x 8 bits = 112bits)

Jusqu'à présent c'est ce que j'ai, je peux compter le nombre de Caractères dans le Tableau. Mais la tâche la plus importante est de les compter dans la même séquence. Je n'arrive pas à comprendre ça 🙁
Ive a regardé faire C juste il y a quelques semaines, j'ai des connaissances sur le Tableau, les pointeurs, la valeur ASCII
mais en tout cas ne semble pas possible de compter les caractères dans une séquence. Ive essayer un peu de tout. Cette approche n'est pas bon, mais il est le plus près je suis venu à elle.

#include <stdio.h>
#include <conio.h>

int main()
{

 int charcnt=0,dotcnt=0,commacnt=0,blankcnt=0,i, countA, countB;
 char str[125];



 printf("*****String Manipulations*****\n\n");
 printf("Enter a string\n\n");

 scanf("%[^'\n']s",str);


 printf("\n\nEntered String is \" %s \" \n",str);


 for(i=0;str[i]!='
#include <stdio.h>
#include <conio.h>
int main()
{
int charcnt=0,dotcnt=0,commacnt=0,blankcnt=0,i, countA, countB;
char str[125];
printf("*****String Manipulations*****\n\n");
printf("Enter a string\n\n");
scanf("%[^'\n']s",str);
printf("\n\nEntered String is \" %s \" \n",str);
for(i=0;str[i]!='\0';i++)
{
//COUNTING EXCEPTION CHARS                         
if(str[i]==' ')
blankcnt++;
if(str[i]=='.')
dotcnt++;
if(str[i]==',')
commacnt++;
if (str[i]=='A' || str[i]=='a')
countA++;
if (str[i]=='B' || str[i]=='b')
countA++;
}
//PRINT RESULT OF COUNT
charcnt=i;
printf("\n\nTotal Characters : %d",charcnt);
printf("\nTotal Blanks     : %d",blankcnt);
printf("\nTotal Full stops : %d",dotcnt);
printf("\nTotal Commas     : %d\n\n",commacnt);
printf("A%d\n", countA);
}
'
;i++) { //COUNTING EXCEPTION CHARS if(str[i]==' ') blankcnt++; if(str[i]=='.') dotcnt++; if(str[i]==',') commacnt++; if (str[i]=='A' || str[i]=='a') countA++; if (str[i]=='B' || str[i]=='b') countA++; } //PRINT RESULT OF COUNT charcnt=i; printf("\n\nTotal Characters : %d",charcnt); printf("\nTotal Blanks : %d",blankcnt); printf("\nTotal Full stops : %d",dotcnt); printf("\nTotal Commas : %d\n\n",commacnt); printf("A%d\n", countA); }
Que signifie "les compter dans le même ordre"?
Vous avez besoin de mettre en place un tableau de compteurs, un pour chaque personnage que vous pourriez rencontrer. En essayant de les faire séparément les variables discrètes serait assez lourd.
Je pense qu'il veut de longueur de course de l'encodage.
il est assez évident que ce que vous voulez faire dans l'exemple que vous nous avez montré, mais vous avez besoin de dire quoi faire avec tous les puncuation caractères.
Vous pouvez également profiter de la ce fil à CodeGolf, sur un minimum de programmes pour décoder le type de sortie généré ici.

OriginalL'auteur Delandilon | 2013-11-03