Advertisement
sellmmaahh

OR-Skripta Adijata-zad 3-Broj Zamijeni Zbirom Cifara

Aug 27th, 2015
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.86 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void Unos (char *s) {
  5.     int i=0;
  6.     char c;
  7.     do {
  8.             c=getchar();
  9.             s[i]=c;
  10.             i++;
  11.     }   while (c!='\n' && i<100);
  12.     s[i-1]='\0';
  13. }
  14.  
  15. int length(char *s) {
  16.     int duz=0,i=0;
  17.     while (s[i++]!='\0') duz++;
  18.     return duz;
  19. }
  20. int JeLiBroj (char c)
  21. {
  22.     if (c>='0' && c<='9') return 1;
  23.     return 0;
  24. }
  25.  
  26. void cut(char *string, int indeks, int len)
  27. {
  28.     int i,duz=length(string);
  29.  
  30.     for(i = indeks; i <= duz - len; i++)
  31.     {
  32.         string[i] = string[i + len];
  33.     }
  34.  
  35. }
  36.  
  37. int obrni (int n) {
  38.     int nb=0, k=1;
  39.     while (n!=0) {
  40.         nb=nb*10+n%10;
  41.         n/=10;
  42.     }
  43.     return nb;
  44. }
  45.  
  46. void BrojUString (char *s, int n) {
  47.     int duzina=length(s), i=0, nb;
  48.     nb=obrni(n);
  49.     while (nb!=0) {
  50.             s[i]=nb%10+'0';
  51.             i++;
  52.             nb/=10;
  53.     }
  54.     s[i]='\0';
  55. }
  56.  
  57.  
  58.  
  59.  
  60. void insert (char *s1, char *s2, int indeks) {
  61.     int i;
  62.     for (i=length(s1)+length(s2); i>=indeks+length(s2); i--)
  63.            s1[i]=s1[i-length(s2)];
  64.  
  65.     for (i=0; i<length(s2); i++) {
  66.             s1[i+indeks]=s2[i];
  67.     }
  68. }
  69.  
  70. void Zamijeni ( char *s) {
  71.     int suma=0, i,j=0, duzina=length(s), poc, kraj;
  72.     char broj[20];
  73.     for (i=0; i<duzina; i++) {
  74.             if (JeLiBroj(s[i])) {
  75.                     poc=i;
  76.                      suma+=s[i]-'0';
  77.                      i++;
  78.                while (JeLiBroj(s[i])) {
  79.                      suma+=s[i]-'0';
  80.                      i++;
  81.                }
  82.                BrojUString(broj,suma);
  83.                kraj=i;
  84.             cut(s,poc,kraj-poc);
  85.             i-=(kraj-poc);
  86.             insert(s,broj,poc);
  87.             i+=length(broj);
  88.  
  89.             }
  90.              suma=0;
  91.     }
  92. }
  93.  
  94.  
  95. int main () {
  96.     char s[100];
  97.      Unos(s);
  98.     Zamijeni(s);
  99.     printf("%s", s);
  100.     return 0;
  101.  
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement