[ cyber_killer @ 05.04.2007. 19:55 ] @
Zadaca mi je: napisati program koji stisne rjeci na ovakav nacin.Napisem npr.aaaaBbbbbbddd -------> izpis bi trebo biti ovakav a4Bb4d3 sto znaci 4 slova 'a', jedno veliko slovo 'B' itd.To sam uspio i radi tako za slova tako i za brojeve,al mi se pojavlja problem kad bi htio onda to raztegnuti znaci da dodje u provotni oblik. Kad dadnem npr. a4b4c4d4 mi izpise samo 4444 umjesto 4 'a',4 'b'... itd.Molim cimprije ako se more jer sutra moram tu zadacu pokazati. Evo moj kod: Code: #include <stdio.h> #include <ctype.h> #include <string.h> #define DUZ 1024 void razsiri(char *niz){ int i,j; int broj=0; int duzinaNiza=strlen(niz); for(i=0;i<duzinaNiza;i++){ if(isalpha(niz[i]) !=0) { if(isdigit(niz[i+1]) != 0 ){ while(isdigit(niz[i+1]) == 0) broj=broj*10+niz[i]; for(j=0;j<broj;j++) printf("%c",niz[i]); broj=0; } else printf("%c",niz[i]); } else printf("%c",niz[i]); } } int main(){ int i; int br=1; char niz[DUZ]; printf("Unesi string: \n"); scanf("%s",niz); int duzinaNiza=strlen(niz); for(i=0;i<duzinaNiza;i++){ if(isalpha(niz[i])!=0) { if(niz[i+1]==niz[i]) { br++; } else{ if(br==1) printf("%c",niz[i]); else printf("%c%d",niz[i],br); br=1; } } else printf("%c",niz[i]); } char niz2 [DUZ]; printf("\n"); printf("Unesi stisnuti niz:\n"); scanf("%s",niz2); printf("\n"); razsiri(niz2); return 0; } [Ovu poruku je menjao cyber_killer dana 06.04.2007. u 07:43 GMT+1] [Ovu poruku je menjao cyber_killer dana 06.04.2007. u 07:44 GMT+1] |