Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2019
847
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.72 KB | None | 0 0
  1. //ZSR 10
  2. //zadatak 1
  3. #include <stdio.h>
  4.  
  5. int PronadjiPosljednji (const char* s1,const char* s2) {
  6. const char* pom1;
  7. const char* pom2;
  8. const char* poc=s1;
  9. const char* pamti=0;
  10. while (*s1!='\0') {
  11. pom1=s1;
  12. pom2=s2;
  13. while (*pom1==*pom2) {
  14. pom1++;
  15. pom2++;
  16. if (*pom1=='\0' || *pom2=='\0') break;
  17. }
  18. if (*pom2=='\0') pamti=s1;
  19. s1++;
  20. }
  21. if(pamti==0) return -1;
  22. return pamti-poc;
  23. }
  24.  
  25. int main() {
  26. const char *n = "Danas je divan dan!";
  27. printf ("%d ", PronadjiPosljednji(n, "Divan")); //-1 (nema)
  28. printf ("%d", PronadjiPosljednji(n, "divan")); //9
  29. return 0;
  30. }
  31. //zadatak 2
  32. #include <stdio.h>
  33.  
  34. int PronadjiPosljednji (const char* s1,const char* s2)
  35. {
  36. const char* pom1;
  37. const char* pom2;
  38. const char* poc=s1;
  39. const char* pamti=0;
  40. char temp1,temp2;
  41. while (*s1!='\0') {
  42. pom1=s1;
  43. pom2=s2;
  44. if (*pom1>='A' && *pom1<='Z') temp1=*pom1+32;
  45. else temp1=*pom1;
  46. if (*pom2>='A' && *pom2<='Z') temp2=*pom2+32;
  47. else temp2=*pom2;
  48. while (temp1==temp2) {
  49. pom1++;
  50. pom2++;
  51. if (*pom1>='A' && *pom1<='Z') temp1=*pom1+32;
  52. else temp1=*pom1;
  53. if (*pom2>='A' && *pom2<='Z') temp2=*pom2+32;
  54. else temp2=*pom2;
  55. if (*pom1=='\0' || *pom2=='\0') break;
  56. }
  57. if (*pom2=='\0') pamti=s1;
  58. s1++;
  59. }
  60. if(pamti==0) return -1;
  61. return pamti-poc;
  62. }
  63.  
  64. int main()
  65. {
  66. printf("ZSR 10, Zadatak 2");
  67. return 0;
  68. }
  69. //zadatak 3
  70. #include <stdio.h>
  71.  
  72. char* IzbaciTekst (char* Str,const char* tekst)
  73. {
  74. char* pom1;
  75. const char* pom2=tekst;
  76. char* pocetak;
  77. char* pok=Str;
  78. if (*pom2=='\0') return pok;
  79. while (*Str!='\0') {
  80. pom1=Str;
  81. pocetak=Str;
  82. pom2=tekst;
  83. while (*pom1==*pom2) {
  84. pom1++;
  85. pom2++;
  86. if (*pom1=='\0' || *pom2=='\0') break;
  87. }
  88. if (*pom2=='\0') {
  89. while(*pocetak++=*pom1++);
  90. Str=pok;
  91. //bitno da se ne krahira
  92. continue;
  93. }
  94. Str++;
  95. }
  96. return pok;
  97. }
  98. int main()
  99. {
  100. //AT4 Ne treba nista uraditi.
  101. char niz[] = "aaaabcbcbcbc";
  102. printf("'%s'\n", IzbaciTekst(niz, ""));
  103. return 0;
  104. }
  105. //zadatak 4
  106. #include <stdio.h>
  107.  
  108. char* IzbaciTekst (char* Str, const char*tekst, int cs)
  109. {
  110. //deklaracija
  111. char* pom1=Str;
  112. const char* pom2=tekst;
  113. char* pok=Str;
  114. char temp1,temp2;
  115. char* pocetak;
  116. //ako je tekst prazan string
  117. if (*pom2=='\0') return pok;
  118.  
  119. if (cs) {
  120. while (*Str!='\0') {
  121. pom1=Str;
  122. pom2=tekst;
  123. pocetak=Str;
  124. while (*pom1==*pom2) {
  125. pom1++;
  126. pom2++;
  127. if (*pom1=='\0' || *pom2=='\0') break;
  128. }
  129. if (*pom2=='\0') {
  130. while (*pocetak++=*pom1++);
  131. Str=pok;
  132. continue;
  133. }
  134. Str++;
  135. }
  136. } else {
  137. while (*Str!='\0') {
  138. pom1=Str;
  139. pom2=tekst;
  140. pocetak=Str;
  141. if(*pom1>='A' && *pom1<='Z') temp1=*pom1+32;
  142. else temp1=*pom1;
  143. if (*pom2>='A' && *pom2<='Z') temp2=*pom2+32;
  144. else temp2=*pom2;
  145. while (temp1==temp2) {
  146. pom1++;
  147. pom2++;
  148. if(*pom1>='A' && *pom1<='Z') temp1=*pom1+32;
  149. else temp1=*pom1;
  150. if (*pom2>='A' && *pom2<='Z') temp2=*pom2+32;
  151. else temp2=*pom2;
  152. if (*pom1=='\0' || *pom2=='\0') break;
  153. }
  154. if (*pom2=='\0') {
  155. while (*pocetak++=*pom1++);
  156. Str=pok;
  157. continue;
  158. }
  159. Str++;
  160.  
  161. }
  162. }
  163. return pok;
  164. }
  165.  
  166. int main()
  167. {
  168. char niz[] = "RI ri rI Ri kurs KURS kUrS je najbolji smjer";
  169. printf("'%s'", IzbaciTekst(niz, "RI KURS", 0));
  170. return 0;
  171. }
  172. //zadatak 5
  173. #include <stdio.h>
  174.  
  175. void NtaRijec (const char* Str, char* rijec, int n)
  176. {
  177. int br=0;
  178. int razmak=1;
  179. while (*Str!='\0') {
  180. if (!( (*Str>='A' && *Str<='Z') || (*Str>='a' && *Str<='z') ) ) razmak=1;
  181. else if (razmak) {
  182. razmak=0;
  183. br++;
  184. if (br==n) {
  185. while((*Str>='A' && *Str<='Z') || (*Str>='a' && *Str<='z')) {
  186. *rijec++=*Str++;
  187. }
  188. *rijec='\0';
  189. return;
  190. }
  191. }
  192. Str++;
  193. }
  194. if (n>br) *rijec='\0';
  195. }
  196. int main()
  197. {
  198. printf("ZSR 10, Zadatak 5");
  199. return 0;
  200. }
  201. //zadatak 6
  202. #include <stdio.h>
  203. char* ZamijeniTekst (char* Str, const char* sta, const char* sa_cim, int cs)
  204. {
  205. //deklaracija varijabli
  206. int br1=0,br2=0;
  207. const char* pom1=sta;
  208. char* pom=Str;
  209. char* pocetak=Str;
  210. const char* pom2=sa_cim;
  211. char* kraj=Str;
  212. char* poc=Str;
  213. int pomak=0;
  214. char temp1,temp2;
  215. //racunanje pomaka
  216. while (*kraj!='\0') kraj++;
  217. while (*pom1!='\0') {
  218. br1++;
  219. pom1++;
  220. }
  221. while (*pom2!='\0') {
  222. br2++;
  223. pom2++;
  224. }
  225. pomak=br2-br1;
  226. //ako je cs
  227. if (cs) {
  228. while (*Str!='\0') {
  229. pom1=sta;
  230. pom=Str;
  231. pom2=sa_cim;
  232. poc=Str;
  233. while(*pom1==*pom) {
  234. pom1++;
  235. pom++;
  236. if (*pom1=='\0' || *pom=='\0') break;
  237. }
  238. if (*pom1=='\0') {
  239. //ako je rijec koja mijenja veca od rijeci koju mijenjamo
  240. if (pomak>0) {
  241. while (kraj>=pom) {
  242. *(kraj+pomak)=*kraj;
  243. kraj--;
  244. }
  245. while (*kraj!='\0') kraj++;
  246. while (*pom2!='\0') {
  247. *poc=*pom2;
  248. poc++;
  249. pom2++;
  250. }
  251. if(poc==kraj) *poc='\0';
  252. } else if (pomak==0) { //ako su rijeci iste duzine
  253. while (*pom2!='\0') {
  254. *poc=*pom2;
  255. poc++;
  256. pom2++;
  257. }
  258. if (poc==kraj) *poc='\0';
  259.  
  260. } else if (pomak<0) { //ako je rijec koji mijenjamo duza od one koja se mijenja
  261. while (*pom2!='\0') {
  262. *poc=*pom2;
  263. poc++;
  264. pom2++;
  265. }
  266. if (poc==kraj) *poc='\0';
  267. while (*poc++=*pom++);
  268. }
  269. }
  270. Str++;
  271. }
  272. } else {
  273. while (*Str!='\0') {
  274. pom1=sta;
  275. pom=Str;
  276. pom2=sa_cim;
  277. poc=Str;
  278.  
  279. if(*pom1>='A' && *pom1<='Z') temp1=*pom1+32;
  280. else temp1=*pom1;
  281. if (*pom>='A' && *pom<='Z') temp2=*pom+32;
  282. else temp2=*pom;
  283.  
  284. while(temp1==temp2) {
  285. pom1++;
  286. pom++;
  287. if(*pom1>='A' && *pom1<='Z') temp1=*pom1+32;
  288. else temp1=*pom1;
  289. if (*pom>='A' && *pom<='Z') temp2=*pom+32;
  290. else temp2=*pom;
  291. if (*pom1=='\0' || *pom=='\0') break;
  292. }
  293.  
  294. if (*pom1=='\0') {
  295. if (pomak>0) {
  296. while (kraj>=pom) {
  297. *(kraj+pomak)=*kraj;
  298. kraj--;
  299. }
  300. while (*kraj!='\0') kraj++;
  301. while (*pom2!='\0') {
  302. *poc=*pom2;
  303. poc++;
  304. pom2++;
  305. }
  306. if(poc==kraj) *poc='\0';
  307. } else if (pomak==0) {
  308. while (*pom2!='\0') {
  309. *poc=*pom2;
  310. poc++;
  311. pom2++;
  312. }
  313. if (poc==kraj) *poc='\0';
  314.  
  315. } else if (pomak<0) {
  316. while (*pom2!='\0') {
  317. *poc=*pom2;
  318. poc++;
  319. pom2++;
  320. }
  321. if (poc==kraj) *poc='\0';
  322. while (*poc++=*pom++);
  323. }
  324. }
  325. Str++;
  326. }
  327. }
  328. return pocetak;
  329. }
  330.  
  331. int main()
  332. {
  333. printf("ZSR 10, Zadatak 6");
  334. return 0;
  335. }
  336. //zadatak 7
  337. #include <stdio.h>
  338. char* ZamijeniRijec (char* Str, const char* sta, const char* sa_cim, int cs)
  339. {
  340. //deklaracija
  341. char* pocetak=Str;
  342. char* poc=Str;
  343. char* poc1=Str;
  344. const char* pom1=sta;
  345. const char* pom2=sa_cim;
  346. char* kraj=Str;
  347. int pomak=0,br1=0,br2=0;
  348. char temp1,temp2;
  349. //trazenje kraja
  350. while (*kraj!='\0') kraj++;
  351. while (*sta!='\0') {
  352. br1++;
  353. sta++;
  354. }
  355. sta=pom1;
  356. while (*sa_cim!='\0') {
  357. br2++;
  358. sa_cim++;
  359. }
  360. sa_cim=pom2;
  361. pomak=br2-br1;
  362. if (cs) {
  363. while (*Str!='\0') {
  364. pom2=sa_cim;
  365. pom1=sta;
  366. poc=Str;
  367. poc1=Str;
  368. while (*poc==*pom1) {
  369. poc++;
  370. pom1++;
  371. if (*pom1=='\0' || *poc=='\0') break;
  372. }
  373. if (*pom1=='\0' && (*poc==' ' || *poc=='\0') && (poc1==pocetak || (*(poc1-1)==' ' ) ) ) {
  374. if (pomak==0) {
  375. while (*pom2!='\0') {
  376. *poc1=*pom2;
  377. poc1++;
  378. pom2++;
  379. }
  380. }
  381. if (pomak<0) {
  382. while (*pom2!='\0') {
  383. *poc1=*pom2;
  384. poc1++;
  385. pom2++;
  386. }
  387. while (*poc++==*poc1++);
  388. }
  389. if (pomak>0) {
  390. while (kraj>=poc) {
  391. *(kraj+pomak)=*kraj;
  392. kraj--;
  393. }
  394. while (*kraj!='\0') kraj++;
  395. while (*pom2!='\0') {
  396. *poc1=*pom2;
  397. poc1++;
  398. pom2++;
  399. }
  400. }
  401. }
  402. Str++;
  403. }
  404. } else {
  405. while (*Str!='\0') {
  406. poc1=Str;
  407. poc=Str;
  408. pom1=sta;
  409. pom2=sa_cim;
  410. if (*poc>='A' && *poc<='Z') temp1=*poc+32;
  411. else temp1=*poc;
  412. if (*pom1>='A' && *pom1<='Z') temp2=*pom1+32;
  413. else temp2=*pom1;
  414. while (temp1==temp2) {
  415. poc++;
  416. pom1++;
  417. if (*poc=='\0' || *pom1=='\0') break;
  418. if (*poc>='A' && *poc<='Z') temp1=*poc+32;
  419. else temp1=*poc;
  420. if (*pom1>='A' && *pom1<='Z') temp2=*pom1+32;
  421. else temp2=*pom1;
  422.  
  423. }
  424. if (*pom1=='\0' && ( !( (*poc>='A' && *poc<='Z') || (*poc>='a' && *poc<='z') ) ) && (poc1==pocetak || (*(poc1-1)==' ') ) ) {
  425. if (pomak==0) {
  426. while (*pom2!='\0') {
  427. *poc1=*pom2;
  428. poc1++;
  429. pom2++;
  430. }
  431. }
  432. if (pomak>0) {
  433. while (kraj>=poc) {
  434. *(kraj+pomak)=*kraj;
  435. kraj--;
  436. }
  437. while (*kraj!='\0') kraj++;
  438. while (*pom2!='\0') {
  439. *poc1=*pom2;
  440. poc1++;
  441. pom2++;
  442. }
  443. }
  444. if (pomak<0) {
  445. while (*pom2!='\0') {
  446. *poc1=*pom2;
  447. poc1++;
  448. pom2++;
  449. }
  450. while (*poc1++=*poc++);
  451. }
  452. }
  453. Str++;
  454. }
  455.  
  456. }
  457. return pocetak;
  458. }
  459.  
  460.  
  461. int main()
  462. {
  463. char tekst[100] = " CAJ. Pije caj iz ocaja mali zeko!";
  464. ZamijeniRijec (tekst, "caj", "mlijeko", 0); //cs = 1
  465. printf ("'%s'", tekst);
  466. return 0;
  467. }
  468. //zadatak 8
  469. #include <stdio.h>
  470. int Periodican (const char* string)
  471. {
  472. int per=0;
  473. char period[200];
  474. const char* p=string;
  475. char* q=period;
  476. char znak=*string;
  477. *q=*string;
  478. p++;
  479. q++;
  480. while (*p!=znak && *p!='\0') {
  481. *q=*p;
  482. q++;
  483. p++;
  484. }
  485. *q='\0';
  486. per=q-period;
  487. q=period;
  488. while (*string!='\0') {
  489. if (*q=='\0') {
  490. q=period;
  491. continue;
  492. }
  493. if (*string!=*q) return 0;
  494. string++;
  495. q++;
  496.  
  497. }
  498. return per;
  499. }
  500.  
  501. int main()
  502. {
  503. printf("ZSR 10, Zadatak 8");
  504. char a[] = "ababab", b[] = "abcabca", c[]="DanasDanasDa";
  505. printf("%d %d %d", Periodican(a), Periodican(b), Periodican(c));
  506. return 0;
  507. }
  508. //zadatak 9
  509. #include <stdio.h>
  510.  
  511. char* kompresuj(char* s)
  512. {
  513. int bru,i,br,pomi,br_cif;
  514. char znak;
  515. char string[12];
  516. char* pocetak=s;
  517. char* sb=string;
  518. char* kraj=s;
  519. char* pom=s;
  520. char* poc=s;
  521. //duplanje uzvicnika
  522. while (*s!='\0') {
  523. if (*s=='!') {
  524. bru=0;
  525. while (*s=='!') {
  526. s++;
  527. bru++;
  528. }
  529. kraj=s;
  530. pom=s;
  531. while (*kraj!='\0') kraj++;
  532. while (kraj>=s) {
  533. *(kraj+bru)=*kraj;
  534. kraj--;
  535. }
  536. for (i=0; i<bru; i++) *pom++='!';
  537. s=s+bru-1;
  538. }
  539. s++;
  540. }
  541. //kompresovanje cifara
  542. s=pocetak;
  543. char cifra;
  544. while (*s!='\0') {
  545. if (*s>='0' && *s<='9') {
  546. cifra=*s;
  547. while(*kraj!='\0') kraj++;
  548. while (kraj>=s) {
  549. *(kraj+2)=*kraj;
  550. kraj--;
  551. }
  552. *s++='!';
  553. *s++=cifra;
  554. *s='1';
  555. }
  556. s++;
  557. }
  558. s=pocetak;
  559. while (*s!='\0') {
  560. br=0;
  561. znak=*s;
  562. pom=s;
  563. poc=s;
  564. while (*pom==znak && znak!='!') {
  565. pom++;
  566. br++;
  567. }
  568. if (br>3 && br<10) {
  569. *poc++='!';
  570. *poc++=znak;
  571. *poc++=br+'0';
  572. while (*poc++=*pom++);
  573. }
  574. if (br>=10) {
  575. pomi=br;
  576. //prebrojavanje cifara
  577. do {
  578. pomi/=10;
  579. sb++;
  580. } while (pomi!=0);
  581. *sb--='\0';
  582. //stavljanje cifara u pomocni string
  583. do {
  584. *sb=br%10+'0';
  585. sb--;
  586. br=br/10;
  587. } while (br!=0);
  588. sb++;
  589. //kopiranje pomocnog stringa
  590. *poc++='!';
  591. *poc++=znak;
  592. while(*sb!='\0') {
  593. *poc=*sb;
  594. poc++;
  595. sb++;
  596. }
  597. while (*poc++=*pom++);
  598. }
  599. s++;
  600. }
  601. return pocetak;
  602. }
  603.  
  604. char* dekompresuj (char* s)
  605. {
  606. char* pocetak=s;
  607. char* pom;
  608. char* poc=s;
  609. char* kraj=s;
  610. char znak;
  611. int br,br_cif;
  612. int i;
  613. //izbavicanje duplih uzvicnika
  614. while (*s!='\0') {
  615. br=0;
  616. br_cif=0;
  617. if (*s=='!' && *(s+1)=='!') {
  618. poc=s+1;
  619. pom=s+2;
  620. while(*poc++=*pom++);
  621. }
  622. if (*s=='!' && *(s+2)>='0' && *(s+2)<='9') {
  623. znak=*(s+1);
  624. pom=s+2;
  625. kraj=s;
  626. while(*pom>='0' && *pom<='9') {
  627. br=br*10+*pom-'0';
  628. pom++;
  629. br_cif++;
  630. }
  631. while (*kraj!='\0') kraj++;
  632. while (kraj>s) {
  633. *(kraj+br-br_cif-2)=*kraj;
  634. kraj--;
  635. }
  636. poc=s;
  637. for(i=0; i<br; i++) *poc++=znak;
  638. }
  639. s++;
  640. }
  641. return pocetak;
  642. }
  643.  
  644. int main()
  645. {
  646. /* Razmaci */
  647. char tekst[100] = "! 10Tekst!a6! 16";
  648. printf("'%s'", dekompresuj(tekst));
  649. return 0;
  650. }
  651. //zadatak 10
  652. #include <stdio.h>
  653. char* prebroji (char* tekst, char* slova)
  654. {
  655. *slova='\0';
  656. char* pocetak=slova;
  657. char* poc=tekst;
  658. int i;
  659. char brojac[26]= {0};
  660. char temp;
  661. int max,maxi=0;
  662. while (*tekst!='\0') {
  663. if ( (*tekst>='a' && *tekst<='z') || (*tekst>='A' && *tekst<='Z') ) {
  664. if (*tekst>='a' && *tekst<='z') temp=*tekst-32;
  665. else temp=*tekst;
  666. brojac[temp-'A']++;
  667. }
  668. tekst++;
  669. }
  670. tekst=poc;
  671. max=brojac[0];
  672. while (*tekst!='\0') {
  673. max=brojac[0];
  674. maxi=0;
  675. for (i=0; i<26; i++) {
  676. if (brojac[i]>max) {
  677. max=brojac[i];
  678. maxi=i;
  679. }
  680. }
  681. //ideja
  682. brojac[maxi]=0;
  683. if (max!=0) {
  684. *slova=maxi+'A';
  685. slova++;
  686. }
  687. tekst++;
  688. }
  689. *slova='\0';
  690. return pocetak;
  691. }
  692. int main()
  693. {
  694. /* AT9: ne smije se koristiti pomocni niz */
  695. /* N1 - velika slova */
  696. /* N2 - brojevi i znakovi */
  697. /* N3 - mala slova */
  698. #define N1 (26 * 245)
  699. #define N2 (33 * 120)
  700. #define N3 (26 * 127)
  701. char tekst[N1 + N2 + N3 + 1] = "";
  702. int i;
  703. /* popunjavamo niz 'tekst' formatom:
  704. ABCD... !"#$ ... 0123456789:;<=>?@... abcd...z
  705. */
  706. for (i = 0; i < N1; ++i)
  707. tekst[i] = i % 26 + 65; /* ABC...Z */
  708. for (i = N1; i < N1 + N2; ++i)
  709. tekst[i] = i % 33 + 32; /* !"...?@ */
  710. for (i = N1 + N2; i < N1 + N2 + N3; ++i)
  711. tekst[i] = i % 26 + 97; /* abc...z */
  712.  
  713. char slova[27]; /* za nul-granicnik */
  714. prebroji(tekst, slova);
  715. printf("Alphabet: '%s'", slova); /* cijeli engl. alfabet */
  716. return 0;
  717. }
  718. //zadatak 11
  719. #include <stdio.h>
  720.  
  721. char* izbaci_maxbroj(char* s)
  722. {
  723. char* pocetak=s;
  724. char* pom;
  725. char* pom1;
  726. char* poc;
  727. int broj=0;
  728. int broj1=0;
  729. char sbr[100];
  730. char* sb=sbr;
  731. int pomocni=0;
  732. int predznak=1;
  733. while (*s!='\0') {
  734. pom=s;
  735. broj=0;
  736. predznak=1;
  737. while (*s>='0' && *s<='9') {//bitno
  738. if (pom!=pocetak && *(pom-1)=='-') predznak=-1;
  739. if (pom==pocetak && *pocetak=='-') predznak=-1;
  740. broj=broj*10+ (*s-'0');
  741. s++;
  742. }
  743. broj=broj*predznak;
  744. if (broj>broj1) broj1=broj;
  745. if (*s=='\0') break;
  746. s++;
  747. }
  748. s=pocetak;
  749. pomocni=broj1;
  750. while (pomocni!=0) {
  751. pomocni=pomocni/10;
  752. sb++;
  753. }
  754. sb++;
  755. //bitno
  756. *sb='\0';
  757. sb--;
  758. do {
  759. *sb=broj1%10+'0';
  760. broj1=broj1/10;
  761. sb--;
  762. } while (broj1!=0);
  763. sb++;
  764. while (*s!='\0') {
  765. pom=s;
  766. pom1=sb;
  767. poc=s;
  768. while (*pom==*pom1) {
  769. pom1++;
  770. pom++;
  771. if (*pom=='\0' || *pom1=='\0') break;
  772. }
  773. if (*pom1=='\0') {
  774. while (*poc++=*pom++);
  775. }
  776. s++;
  777. }
  778. return pocetak;
  779. }
  780.  
  781. int main()
  782. {
  783. /* AT7: Negativni brojevi */
  784. char tekst[] = "-765 je manje od -432 koji je veci od -433 i -1234";
  785. printf("%s", izbaci_maxbroj(tekst));
  786. return 0;
  787. }
  788. //zadatak 15
  789. #include <stdio.h>
  790.  
  791. void cenzura (char* s,char* rijeci)
  792. {
  793. char* pom=s;
  794. char* pocetaks=s;
  795. char* poc=s;
  796. int cenzurisi=0;
  797. int neslovo=1;
  798. char* q=rijeci;
  799. char* kraj=s;
  800. char* pocetak=rijeci;
  801. int br=0;
  802. int i;
  803. while (*s!='\0') {
  804. if ( !( (*s>='A' && *s<='Z') || (*s>='a' && *s<='z') ) ) {
  805. neslovo=1;
  806. } else if (neslovo) {
  807. pom=s;
  808. poc=s;
  809. q=pocetak;
  810. cenzurisi=0;
  811. while (*q!='0' && *pom!='\0') {
  812. pom=s;
  813. br=0;
  814. while (*pom==*q) {
  815. if ( ( !( (*pom>='A' && *pom<='Z') || (*pom>='a' && *pom<='z') ) ) && (*q=='\0' || *q==' ') ) {
  816. cenzurisi=1;
  817. break;
  818. }
  819. br++;
  820. pom++;
  821. q++;
  822. }
  823. if (cenzurisi) break;
  824. if (*q=='\0') break;
  825. q++;
  826. }
  827. if (cenzurisi) {
  828. if (br>3) {
  829. for (i=0; i<3; i++) *poc++='*';
  830. while (*poc++=*pom++);
  831. }
  832. if (br==3) {
  833. for (i=0; i<3; i++) *poc++='*';
  834. }
  835. if (br<3) {
  836. kraj=s;
  837. while (*kraj!='\0') kraj++;
  838. while (kraj>pom) {
  839. *(kraj+3-br)=*kraj;
  840. kraj--;
  841. }
  842. for (i=0; i<3; i++) *poc++='*';
  843. }
  844. }
  845. }
  846. s++;
  847. }
  848. }
  849.  
  850. int main()
  851. {
  852. char _cenzura[] = "e webmail vAm";
  853. char _tekst[50] = "Poslao sam Vam e-mail na webmail.";
  854.  
  855. cenzura(_tekst,_cenzura);
  856. printf("'%s'",_tekst);
  857. return 0;
  858. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement