Advertisement
Adijata

izbaci brojeve vece od 10 iz stringa

Sep 8th, 2014
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.42 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. char* funkcija(char *p, char novi[100])
  5. {
  6.     char* q=novi;
  7.     int i;
  8.     // da sacuvamo pcoetnu adresu
  9.  
  10.     int broj;
  11.     while(*p!='\0')
  12.     {
  13.         if(*p>='0' && *p <= '9') // provjeravam jesu li znakovi na koje pokazviac nailazi brojevi
  14.         {
  15.             broj=0; // ovdje stavljamo broj na nulu jer svaki put kad naidje na novi niz cifara to smatramo zasebnim brojem
  16.             while(*p >= '0' && *p <= '9')// ako jesu, sve dok jesu brojevi trebam da ih izvlacim iz teksta i pretvaram u intove
  17.             {
  18.                 broj*=10; // za destke i stotice trik
  19.                 broj+=(int )(*p-'0'); //--ovo je šablon za pretvaranje cifara odnosno asci coda cifre u cifru
  20.                 p++;
  21.             }
  22.  
  23.             if(broj <= 10)
  24.             {
  25.                 int brojac_cifara=0;
  26.                 while(broj!=0)
  27.                 {
  28.                     broj/=10;
  29.                     brojac_cifara++;
  30.                 }
  31.  
  32.                p-=brojac_cifara;
  33.                for(i=0; i<brojac_cifara; i++)
  34.                 *q++=*p++;
  35.             }
  36.  
  37.  
  38.         }
  39.         *q++=*p++;
  40.  
  41.     }
  42.    *q='\0';
  43.  
  44.     return novi;
  45. }
  46.  
  47.  
  48.  
  49. int main()
  50. {
  51.  
  52.     char niz[100]="Brojevi veci od 10! Ostaju: 9 5 idu: 11 12 19 999";
  53.     char novi[100];
  54.     char *s=novi;
  55.     s=funkcija(niz, novi);
  56.  
  57.     while(*s!='\0')
  58.     {
  59.         printf("%c", *s++);
  60.     }
  61.  
  62.     return 0;
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement