You are on page 1of 46

/*Napisati program na C-u kojim se sa tastature unosi rečenica iz

koje je potrebno u novi string izdvojiti riječ koja počinje sa velikim slovom
(prvu riječ u rečenici ne uzimati u obzir). Npr. iz rečenice “Dobar dan Marko.”
Treba izdvojiti riječ “Marko”, a iz rečenice “Ivica i Marica su djeca siromašnog
stolara.” izdvojiti “Marica”. Smatrati da se riječi razdvajaju
znakovima: ' ' ', ' i '.' */

#include<stdio.h>
#include<stdlib.h>
#define MAX 100

void izdvoji(char string[])


{
int i=0,duzina=0,k=0;
char pom[MAX];

//Odredjujemo duzinu stringa

while(string[duzina]!=NULL)
{
duzina++;
}

//Zatim prelazimo na glavni dio zadatka

for(i=1; i<duzina; i++)


{
if(string[i]>='A' && string[i]<='Z')
{
while(string[i]!=NULL && string[i]!=' ' && string[i]!=',' && string[i]!='.')
{
pom[k++]=string[i];
i++;
}
pom[k++]=' ';

}
}

pom[k]=NULL;
printf("\n\n Dobijeni string:");
puts(pom);

/*********************************************************************************************************/

/*Iza i ispred svake pojave slova A postaviti K zvjezdica,broj K ,

broj zvjezdica koje zelimo da postavimo ispred i iza slova A unosimo

sa tastature.K mora biti u opsegu [1,5],cijeli broj ..npr za string 'Ako Aleksandar'...za K=2 bice **A**ko**A**leksandar .

Nije dozvoljeno koristiti pomocne stringove i ASCII tabelu*/

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#define MAX 100


main()

char string[MAX];

int i,j,p,K,duzina;

printf("Unesite string:");

gets(string);

duzina=strlen(string);

printf("\nUnesite cijeli broj K:");

do{

scanf("%d",&K);

}while(K<1 || K>5);

//Mehanizam za postavljanje zvjezdica iza svake pojave znaka A

for(i=0; i<duzina; i++)

if(string[i]=='A')

for(p=0; p<K; p++)

duzina++;

for(j=duzina-1; j>i; j--)

string[j]=string[j-1];

string[j+1]='*';
}

string[duzina]='\0';

//Mehanizam za postavljanje zvjezdica ispred svake pojave znaka A

for(i=0; i<duzina; i++)

if(string[i]=='A')

for(p=0; p<K; p++)

duzina++;

for(j=duzina-1; j>i; j--)

string[j]=string[j-1];

string[j]='*';

i=i+1;

string[duzina]='\0';

printf("\nTransformisani string izgleda ovako:\n\n");

puts(string);
system("pause");

4)/*Napisati funkciju kojoj se prosljedjuju dva stringa(ime i prezime),a kao rezultat vraća se novi string

koji se sastoji od prvog slova imena,tacke razmaka i prezimena.Npr. ako je prosljedjeno ime Marko,

a prezime Markovic,kao rezultatt se dobija string M. Markovic*/

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#define MAX 100

void ime_prezime (char ime[], char prezime[])

int i,j,duzina_ime,duzina_prezime,k=0;

char pom[MAX];

duzina_ime=strlen(ime);

duzina_prezime=strlen(prezime);

pom[k]=ime[0];

pom[++k]='.';

pom[++k]=' ';

for(j=0; j<duzina_prezime; j++)

{
pom[k]=prezime[j];

++k;

pom[k]='\0';

printf("\n\nTrazeni string:\n\n");

puts(pom);

main()

char ime[MAX], prezime[MAX];

printf("Unesite ime:\n\n");

gets(ime);

printf("\n\nUnesite prezime:\n\n");

gets(prezime);

ime_prezime(ime,prezime);

system("pause");

//U obliku funkcije

/*Iza i ispred svake pojave slova A postaviti K zvjezdica,broj K ,


broj zvjezdica koje zelimo da postavimo ispred i iza slova A unosimo

sa tastature.K mora biti u opsegu [1,5],cijeli broj ..npr za string 'Ako Aleksandar'...za K=2 bice **A**ko**A**leksandar .

Nije dozvoljeno koristiti pomocne stringove i ASCII tabelu*/

#include<stdio.h>

#include<stdlib.h>

#define MAX 100

void umetni (char string[],int K)

int duzina=0,i,p=0,j;

//Pronasli smo duzinu stringa

while(string[duzina]!=NULL)

duzina++;

//Umetanje zvjezdica ispred stringa

for(i=0; i<duzina; i++)

if(string[i]=='A')

for(p=0; p<K; p++)

duzina++;

for(j=duzina-1; j>i; j--)

string[j]=string[j-1];

}
string[j]='*';

i=i+K+1;

//Umetanje zvjezdica poslije A

for(i=0; i<duzina; i++)

if(string[i]=='A')

for(p=0; p<K; p++)

duzina++;

for(j=duzina-1; j>i; j--)

string[j]=string[j-1];

string[j+1]='*';

string[duzina]=NULL;
puts(string);

main()

char string[MAX];

int K;

printf("\n\nUnesite string:");

gets(string);

do{

printf("\n\nUnesite broj zvjezdica K:");

scanf("%d",&K);

}while(K<1 || K>5);

umetni(string,K);

system("pause");

/*************************************************************************************/

/*Napisati fuknciju kojoj se prosledjuju dva stringa


(ime i prezime),a kao rezultata se vraca novi string koji se sastoji od prvog
slova imena tacke i razmaka i prezimena.Npr. ako je
prosledjeno ime Marko,a prezime Markovic,kao rezultat treba da se dobije
string M. Markovic */
#include<stdio.h>
#include<stdlib.h>
#define MAX 100

void ime_prezime (char ime[], char prezime [])


{
int M=0, N=0,j,k=0;
char pom[MAX];

//Racunamo duzinu imena


while(ime[M]!=NULL)
{
M++;
}

//Rcunamo duzinu prezimena

while(prezime[N]!=NULL)
{
N++;
}

pom[k++]=ime[0];
pom[k++]='.';
pom[k++]=' ' ;

for(j=0; j<N; j++)


{
pom[k++]=prezime[j];
}

pom[k]=NULL;

printf("\n\nDobijeni string izgleda ovako:\n\n");


puts(pom);
}

main()
{
char A[MAX],B[MAX];

printf("\n\nUnesite ime:\n\n");
gets(A);

printf("\n\nUnesite prezime:\n\n");
gets(B);

ime_prezime(A,B);

system("pause");
}

/*************************************************************************************************/

/*Omoguciti korisniku da sa tastature unese recenicu.Unijetu recenicu transformisati tako


da sva velika slova zamijeni sa odgovarajucim malim,a sva mala sa odgovarajucim velikim.*/
//PREKO FUNKIJE

//ISPITNI

#include<stdio.h>
#include<stdlib.h>
#define MAX 100

void pretvori (char recenica[])


{
int duzina=0,i;
while(recenica[duzina]!=NULL)
{
duzina++;
}

for(i=0; i<duzina; i++)


{
if(recenica[i]>='a' && recenica[i]<='z')
{
recenica[i]=recenica[i]-32;
}

else if(recenica[i]>='A' && recenica[i]<='Z')


{
recenica[i]=recenica[i]+32;
}

printf("\n\nTrnasormisani string:\n\n");
puts(recenica);

main()
{
char recenica[MAX];

printf("\n\nUnesite recenicu:\n\n");
gets(recenica);

pretvori(recenica);

system("pause");

/*******************************************************************************/

/*Napisati program kojim se u funkciji main


sa tastature unose dva stringa: prvi string u formatu ime_prezime_broj_indeksa,a zatim drugi string
ime_oca.
Pozivom pomocne funkcije sredi_string izvrsiti transformaciju prvog stringa
tako da se poslije imena u njega ubaci ime oca
u malim zagradama.Npr. ako je sa tastature unijet prvi string
Marko Markovic 1560 i drugi Janko,transformisan prvi string ce izgledati
Marko(Janko)Markovic 1560.U funkciji main stampati na ekran transformisan prvi string.*/

/******************ISPITNI 14.7.2016.***********************************/

#include<stdio.h>
#include<stdlib.h>
#define MAX 100

void sredi_string (char ime_prezime_broj_indeksa[], char ime_oca[])


{
int M=0,N=0,i,j,k,p;

//Trazimo duzinu prvog stringa


while(ime_prezime_broj_indeksa[M]!=NULL)
{
M++;
}

while(ime_oca[N]!=NULL)
{
N++;
}

//Prvo cemo u string sa imenom oca dodati zagrade

N++;
ime_oca[N-1]=')';

N++;

for(j=N-1; j>0; j--)


{
ime_oca[j]=ime_oca[j-1];
}

ime_oca[j]='(';

ime_oca[N]=NULL;

//Sada prelazimo na string ime_prezime_broj_indeksa

k=0;
while(ime_prezime_broj_indeksa[k]!=' ')
{
k++;
}

j=N-1;
for(p=0; p<N ; p++)
{
M++;

for(i=M-1; i>k; i--)


{
ime_prezime_broj_indeksa[i]=ime_prezime_broj_indeksa[i-1];
}

ime_prezime_broj_indeksa[i+1]=ime_oca[j--];
}

ime_prezime_broj_indeksa[M]=NULL;

printf("\n\nTrnasformisan prvi string izgleda ovako:\n\n");

puts(ime_prezime_broj_indeksa);

main()
{
char ime_prezime_broj_indeksa[MAX],ime_oca[MAX];

printf("\n\nUnesite ime,prezime i broj ideksa:\n\n");


gets(ime_prezime_broj_indeksa);

printf("\n\nUnesite ime oca:\n\n");


gets(ime_oca);

sredi_string(ime_prezime_broj_indeksa,ime_oca);

system("pause");
}

/*
program na programskom jeziku C,
kojim se u stringu, koji predstavlja re?enicu
i unosi se sa tastature,
svaka rec "stari" menja recju "novi".
Reci u recenici su razdvojene jednim blanko znakom.*/

#include<stdio.h>
#include<stdlib.h>
#define MAX 100
#include<string.h>

main()
{
char string[MAX],niz[MAX];
int i,duzina,p,m,k=0,j;

printf("\nUnesite string:\n\n");
gets(string);

duzina=strlen(string);

niz[k++]='n';
niz[k++]='o';
niz[k++]='v';
niz[k++]='i';
niz[k]='\0';

m=k;

for(i=0; i<duzina; i++)


{
if(string[i]=='s')
{
if(string[i+1]=='t' && string[i+2]=='a' && string[i+3]=='r' && string[i+4]=='i')
{
k=0;
for(p=0; p<m; p++)
{
string[i]=niz[k];
i++;
k++;
}

for(j=i; j<duzina; j++)


{
string[j]=string[j+1];
}

duzina--;
}
}
}

printf("\nTransformisan string je:\n\n");


puts(string);

system("pause");
}

//Ili preko podniza rijesen prethodni zadatak


/*Napisati program na programskom jeziku C,
kojim se u stringu, koji predstavlja re?enicu
i unosi se sa tastature,
svaka rec "stari" menja recju "novi".
Reci u recenici su razdvojene jednim blanko znakom.*/

//Uradicu preko funkcije,tako da f-ji proslijedi string i njegovu duzinu


#include<stdio.h>
#include<stdlib.h>
#define MAX 100
void izmijeni (char string[],int duzina)
{
int i,j,duzinaS,duzinaN,n,k,br=0,m;
char stari[]={"stari"},novi[]={"novi"};

//izracunacemo prvo duzinu stringa stari ,a zatim duzinu stringa novi

duzinaS=0;
while(stari[duzinaS]!=NULL)
{
duzinaS++;
}

duzinaN=0;
while(novi[duzinaN]!=NULL)
{
duzinaN++;
}

for(i=0; i<duzina; i++)


{
if(string[i]=='s')
{
n=i; //sacuvacemo nas brojac u neku pomocnu varijablu ,da ne reetimo kasnije
poijeranje brojaca
m=i;
for(k=0; k<duzinaS; k++)
{
if(stari[k]==string[n])
{
br++;
n++;
}

if(br==duzinaS)
{
for(j=0; j<duzinaN; j++)
{
string[m++]=novi[j];
}
}

br=0;
}
}

//Jos da se rijesimo duplanja i


for(i=0; i<duzina; i++)
{
if(string[i]=='i' && string[i+1]=='i')
{
for(j=i+1; j<duzina; j++)
{
string[j]=string[j+1];
}
duzina--;
}
}

}
main()
{
char recenica[MAX];
int duzina;

printf("\n\nUnesite recenicu:\n\n");
gets(recenica);

duzina=0;
while(recenica[duzina]!=NULL)
{
duzina++;
}

izmijeni(recenica,duzina);

printf("\n\nTransformisani string izgleda ovako:\n\n");


puts(recenica);

system("pause");
}

/*********************************************************************/

/*2.Napisati program na C-u kojim se pri deklaraciji inicijalizuje string S u formatu


#ime#prezime#broj_indeksa#,
gde ime, prezime i broj indeksa predstavljaju vaše ime, prezime i broj indeksa, a potom se vrši njegova
transformacija tako da se
deo stringa prezime zameni sa *************** (15 zvezdica). Npr. string #ana#stanic#987# treba da posle
transformacije postane
#ana#***************#987#. Pri transformaciji stringa nije dozvoljeno koristiti pomoćne nizove.
Štampati transformisani string na ekran.*/

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 100

main()
{
char string[]="#ana#stanic#987#";
int i,duzina,j,n,br_taraba=0,duzina_prezime=0,index,p;

duzina=strlen(string);

for(i=1; i<duzina; i++)


{
if(string[i]=='#')
{
br_taraba++;

if(br_taraba==1)
{
i++;
index=i;

while(string[i]!='#')
{
duzina_prezime++;
i++;
}

n=15-duzina_prezime;
for(p=0; p<n; p++)
{
duzina++;
string[duzina]='\0';

for(j=duzina-1; j>index; j--)


{
string[j]=string[j-1];
}
}
}
}
}

br_taraba=0;

//Mehanizam za postavljanje zvjezdica

for(i=1; i<duzina; i++)


{
if(string[i]=='#')
{
br_taraba++;

if(br_taraba==1)
{
i++;

while(string[i]!='#')
{
string[i]='*';
i++;
}
}
}
}

puts(string);

system("pause");

//ili
/*2.Napisati program na C-u kojim se pri deklaraciji inicijalizuje string S u formatu
#ime#prezime#broj_indeksa#,
gde ime, prezime i broj indeksa predstavljaju vaše ime, prezime i broj indeksa, a potom se vrši njegova
transformacija tako da se
deo stringa prezime zameni sa *************** (15 zvezdica). Npr. string #ana#stanic#987# treba da posle
transformacije postane
#ana#***************#987#. Pri transformaciji stringa nije dozvoljeno koristiti pomoćne nizove.
Štampati transformisani string na ekran.*/

//Uradicu preko funkcije

#include<stdio.h>
#define MAX 100
#include<stdlib.h>

void ubaci_zvjezdice( char string[])


{
int duzina,i,j,ostatak_zvjezdica,ukupan_br_zvjezdica,p,duzina_prezime=0;

duzina=0;
while(string[duzina]!=NULL)
{
duzina++;
}

ukupan_br_zvjezdica=15;

for(i=1; i<duzina; i++)


{
if(string[i]=='#')
{
i=i+1;

while( string[i]!='#')
{
duzina_prezime++;
i++;
}

ostatak_zvjezdica=ukupan_br_zvjezdica-duzina_prezime;

i=i-duzina_prezime;

for(p=0; p<duzina_prezime; p++)


{
string[i++]='*';
}

for(p=0; p<ostatak_zvjezdica; p++)


{
duzina++;
for(j=duzina-1; j>i; j--)
{
string[j]=string[j-1];
}
string[j]='*';
}

i=i+(duzina-i);;

}
}

string[duzina]=NULL;

main()
{
char string[]={"#ana#stanic#987#"};

ubaci_zvjezdice(string);

printf("\n\nDobijeni string:\n\n");
puts(string);

system("pause");

}
/*********************************************************************/

/*Na programskom jeziku C napisati pomoćnu funkciju nadovezi() kojoj se iz glavnog programa prosleđuju 2
stringa
a funkcija vrši nadovezivanje sadržaja drugog stringa na sadržaj prvog. U funkciji main() uneti sa
tastature stringove S1 i S2,
a na ekran odštampati transformisan prvi string. Korišćenje pomoćnih nizova i globalnih promenljivih nije
dozvoljeno.
Zadatak rešiti bez korišćenja header fajla string.h.*/
//Uradicu preko funkcije

#include<stdio.h>
#define MAX 100
#include<stdlib.h>

void nadovezi ( char S1[], char S2[])


{
int duzina1,duzina2,i,j,p;

duzina1=0;
while(S1[duzina1]!=NULL)
{
duzina1++;
}

duzina2=0;
while(S2[duzina2]!=NULL)
{
duzina2++;
}

for(j=0; j<duzina2; j++)


{
duzina1++;
S1[duzina1-1]=S2[j];
}

S1[duzina1]=NULL;

main()
{
char S1[MAX],S2[MAX];

printf("\n\nUnesite prvi string:\n\n");


gets(S1);

printf("\n\nUnesite drugi string:");


gets(S2);

nadovezi(S1,S2);

puts(S1);

system("pause");

#include<stdio.h>
#include<stdlib.h>
#define MAX 100
#include<string.h>

main()
{
char string[MAX];
int i,duzina,max=0,maxindex,broj_karaktera=0;

printf("\n\nUnesite string:\n\n");
gets(string);

duzina=strlen(string);

i=0;
while(string[i]!=' ')
{
max++;
i++;
}

for(i=i+1; i<duzina; i++)


{
while(string[i]!=' ' && string[i]!='\0')
{
broj_karaktera++;
i++;
}

if(broj_karaktera>max)
{
max=broj_karaktera;
maxindex=i;
}

broj_karaktera=0;

printf("\n\nNajvevi broj karaktera je:%d\n\n",max);

maxindex=maxindex-max;
while(string[maxindex]!=' ' && string[maxindex]!='\0' )
{
printf("%c",string[maxindex]);
maxindex++;
}

system("pause");
}
/***************************************************************************/
/*Napisati program na C - u kojim se sa tastature unosi jedan string i dve celobrojne promenljive M i N.
Od karaktera unetog stringa formirati matricu dimenzije M*N.
U slučaju da je broj karaktera u stringu manji od broja elemenata matrice na prazne pozicije upisati *.
Ako je broj karaktera veći, karaktere koji su viška nigde ne upisivati.
Npr.za uneti string a b c d e f g i vrednosti M = 3 i N = 4 formirana matrica će izgledati

a b c d
e f g *
* * * *

*/

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 100

main()
{
char string[MAX],pom[MAX],mat[MAX][MAX];
int duzina,i,red,kol,M,N,br_zvjezdica,p,k=0;

printf("\n\nUnesite string:\n\n");
gets(string);

duzina=strlen(string);

printf("\n\nUnesite M:");
scanf("%d",&M);

printf("\n\nnesite N:");
scanf("%d",&N);
if(duzina<(M*N))
{
br_zvjezdica=(M*N)-duzina;

for(p=0; p<duzina;p++)
{
pom[k++]=string[p];
}

for(p=0; p<br_zvjezdica; p++)


{
pom[k++]='*';
}

pom[k]=NULL;

p=0;
for(red=0; red<M; red++)
{
for(kol=0; kol<N; kol++)
{
mat[red][kol]=pom[p];
p++;
}
}

printf("\n\nMatrica koja se obrazuje od stringa je:\n\n");


for(red=0; red<M ; red++)
{
for(kol=0; kol<N; kol++)
{
printf("%c\t",mat[red][kol]);
}

printf("\n\n");
}

else if(duzina>(M*N))
{
i=0;
for(red=0; red<M; red++)
{
for(kol=0; kol<N; kol++)
{
mat[red][kol]=string[i];
i++;
}
}

printf("\n\nMatrica koja se obrazuje od stringa je:\n\n");


for(red=0; red<M ; red++)
{
for(kol=0; kol<N; kol++)
{
printf("%c\t",mat[red][kol]);
}

printf("\n\n");
}
}

system("pause");
}

/********************************************************************************************************/
//Bolji nacin,bez pomocnog stringa
/*Napisati program na C - u kojim se sa tastature unosi jedan string i dve celobrojne promenljive M i N.
Od karaktera unetog stringa formirati matricu dimenzije M*N.
U slučaju da je broj karaktera u stringu manji od broja elemenata matrice na prazne pozicije upisati *.
Ako je broj karaktera veći, karaktere koji su viška nigde ne upisivati.
Npr.za uneti string a b c d e f g i vrednosti M = 3 i N = 4 formirana matrica će izgledati

a b c d
e f g *
* * * *

*/

//Uradicu preko funkcije

#include<stdio.h>
#define MAX 100
#include<stdlib.h>

void stvori_matricu( char string[],int M, int N)


{
int duzina,red,kol,br=0,br_elemenata_matrice,i;
char mat[MAX][MAX];

duzina=0;
while(string[duzina]!=NULL)
{
duzina++;
}

br_elemenata_matrice=M*N;

if(duzina<br_elemenata_matrice)
{
//Prvo citavu matricu popunjavamo zvjezdicama
for(red=0; red<M; red++)
{
for(kol=0; kol<N; kol++)
{
mat[red][kol]='*';
}
}

//Zatim popunjavamo matricu pojedinacnim karakteria stringa


i=0;
for(red=0; red<M; red++)
{
for(kol=0; kol<N; kol++)
{
br++;

mat[red][kol]=string[i++];

if(br==duzina)
{
red=M;
kol=N;
}

}
}
}

else
{
i=0;
for(red=0; red<M; red++)
{
for(kol=0; kol<N; kol++)
{
mat[red][kol]=string[i++];
}
}
}

printf("\n\nMAT:\n\n");
for(red=0; red<M; red++)
{
for(kol=0; kol<N; kol++)
{
printf("%c\t",mat[red][kol]);
}
printf("\n\n");
}
}

main()
{
char string[MAX];
int M,N;

printf("\n\nUnesite string:\n\n");
gets(string);

printf("\n\nUnesite M:");
scanf("%d",&M);

printf("\n\nUnesite N:");
scanf("%d",&N);

stvori_matricu(string,M,N);

system("pause");
}

//12.9.2013..zadatak br 2.

#include<stdio.h>
#include<stdlib.h>

void zamijeni( char tekst[])


{
int duzina=0,i;
while(tekst[duzina]!='\0')
{
duzina++;
}

for(i=0; i<duzina; i++)


{
if(tekst[i]=='G' && tekst[i+1]=='G')
{
tekst[i]='K';
tekst[i+1]='K';
}

}
}

main()
{
char A[100];
printf("Unesite string:\n");
gets(A);
zamijeni(A);
puts(A);
system("pause");
}

//26.9.2013.

#include<stdio.h>
#include<stdlib.h>

int prebroj_suglasnike(char tekst[])


{
int duzina=0,i,br_suglasnika=0;
while( tekst[duzina]!='\0')
{
duzina++;
}

for(i=0; i<duzina; i++)


{
if( tekst[i]!='A'&& tekst[i]!='a' && tekst[i]!='E' && tekst[i]!='e' && tekst[i]!='I' &&
tekst[i]!='i' && tekst[i]!='O' && tekst[i]!='o' && tekst[i]!='U' && tekst[i]!='u')
{
br_suglasnika++;
}

}
return br_suglasnika;
}

main()
{
char A[100];
int br_suglasnika;
printf("Unesite recenicu:\n");
gets(A);
br_suglasnika=prebroj_suglasnike(A);
printf("Broj suglasnika je: %d",br_suglasnika);
system("pause");
}

//11.10.2013

#include<stdio.h>
#include<stdlib.h>

int prebroj_karaktere( char tekst[])


{
int duzina=0,i, br_znakovnih_karaktera=0;

while( tekst[duzina]!='\0')
{
duzina++;
}

for(i=0; i<duzina; i++)


{
if( tekst[i]<'a'|| tekst[i]>'z')
{
br_znakovnih_karaktera++;
}
}
return br_znakovnih_karaktera;
}

main()
{
char A[100];
int br_znakovnih_karaktera;
printf("Uneiste recenicu:\n");
gets(A);
br_znakovnih_karaktera=prebroj_karaktere(A);

printf("Broj karaktera je %d",br_znakovnih_karaktera);


system("pause");
}

/*String 11.10.2013 */

#include<stdio.h>
#include<stdlib.h>
#define MAX 100

int prebroj ( char string[], char karakter)


{
int i=0,duzina=0;
int br_karaktera=0;

while(string[i]!='\0')
{
duzina++;
i++;
}

for(i=0; i<duzina; i++)


{
if(string[i]==karakter)
{
br_karaktera++;
}
}

return br_karaktera;
}

main()
{
char string[MAX],karakter;
int broj_karaktera;

printf("\nUnesite string: ");


gets(string);

printf("\nUnesite karakter:");
scanf("%c",&karakter);

broj_karaktera=prebroj(string,karakter);

printf("\nBroj karaktera je %d",broj_karaktera);


system("pause");
}
t

/*2.Napisati program na C-u kojim se sa tastature unosi znakovni niz S2, a potom se vrši njegova
transformacija tako da se iz njega
izbacuju dva karaktera koja se u stringu nađu posle karaktera M, bez obzira koji su to karakteri. Na ekran
štampati transformisani string S2.
Pri transformaciji stringa S2 nije dozvoljeno koristiti pomoćne nizove.
Npr. string abcMdeAmkMAMhgs nakon transformacije postaje abcMAmkMhgs.
*/

#include<stdio.h>
#include<stdlib.h>
#include <string.h>

void izbaci (char tekst[])


{
int duzina,i,j;
duzina=strlen(tekst);

for(i=0; i<duzina; i++)


{
if( tekst[i]=='M')
{
for(j=i+1; j<duzina-1;j++)
{
tekst[j]=tekst[j+2];
}
duzina--;
}
}

main()
{
char A[100];
printf("Unesite recenicu:\n");
gets(A);
izbaci(A);
puts(A);

system("pause");
}

/*2.Napisati program na C-u kojim se sa tastature unose znakovni nizovi S1 i S2,


a potom se formira string S tako da se u njega prvo smeštaju karakteri iz stringa S1 koji se ne nalaze u
stringu S2,
a potom se u njega smeštaju karakteri iz stringa S2 koji se ne nalaze u stringu S1.
Na ekran štampati stringove S1, S2 i S. */

#include<stdio.h>
#include<stdlib.h>
#include <string.h>

main()
{
char S[100],S1[100],S2[100];
int i,j,k=0,duzina_s1,duzina_s2,brojac,brojac2,k1;

printf("Unesite string S1:\n");


gets(S1);

printf("\nUnesite string S2:\n");


gets(S2);

duzina_s1=strlen(S1);
duzina_s2=strlen(S2);
for(i=0; i<duzina_s1; i++)
{
brojac=0;
for(j=0; j<duzina_s2;j++)
{
if(S1[i]==S2[j])
{
brojac++;
}
}

if(brojac==0)
{
S[k]=S1[i];
k++;
}
}

printf("Novonastali string je:\n");


for(i=0; i<k; i++)
{
printf("\t%c",S[i]);

}
k1=k;

for(j=0; j<duzina_s2; j++)


{
brojac2=0;
for(i=0; i<duzina_s1; i++)
{
if(S2[j]==S1[i])
{
brojac2++;
}
}

if(brojac2==0)
{
S[k1]=S2[j];
k1++;
}
}

for(j=k; j<k1;j++)
{
printf("\t%c",S[j]);
}

system("pause");
}

/*2.Napisati program na C-u kojim se sa tastature unose znakovni nizovi S1 i S2,


a potom se formira string S tako da se u njega prvo smeštaju karakteri iz stringa S1 koji se ne nalaze u
stringu S2,
a potom se u njega smeštaju karakteri iz stringa S2 koji se ne nalaze u stringu S1.
Na ekran štampati stringove S1, S2 i S. */

//Preko do wajla

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 100

main()
{
char S1[MAX],S2[MAX],S[MAX];
int duzinas1,duzinas2,duzinas3=0,k=0,i,j,pom=0,temp=0;

printf("\nUnesite string S1:\n");


gets(S1);

printf("\nUnesite string S2:\n");


gets(S2);

duzinas1=strlen(S1);
duzinas2=strlen(S2);

j=0;
for(i=0; i<duzinas1; i++)
{
do{
if(S1[i]==S2[j])
{
pom++;
}
j++;

}while(pom<1 && j<duzinas2);

if(pom>=1)
{

S[k]=S1[i];
k++;

pom=0;
j=0;
}

i=0;
for(j=0; j<duzinas2; j++)
{
do{
if(S2[j]==S1[i])
{
temp++;
}
i++;

}while(temp<1 && i<duzinas1);

if(temp>=1)
{
S[k]=S2[j];
k++;
}

temp=0;
i=0;

S[k]='\0';
puts(S);

system("pause");
}

/*2. Napisati program na C-u kojim se od stringa A, koji se unosi sa tastature i koji se sastoji
od malih slova engleskof alfabeta i dekadnih cifara, formiraju dva stringa B i C. U stringu
B treba da se nalaze dekadne cifre iz stringa A, a string C treba da se formira od slova
engleskog alfabeta koji se nalaze u stringu A tako da se ta slova pri upisu u niz C konvertuju
u velika slova engleskog alfabeta.*/

#include<stdio.h>
#include<stdlib.h>
#include <string.h>

main()
{
char A[100],B[100],C[100];
int duzina,i,k=0,m=0;

printf("Unesite string A:\n");


gets(A);

duzina= strlen (A);

for(i=0; i<duzina; i++)


{
if(A[i]>='1' && A[i]<='9')
{
B[k]=A[i];
k++;
}
}

printf("\nString B :\n");
for(i=0; i<k; i++)
printf("\t%c",B[i]);

for(i=0; i<duzina; i++)


{
if(A[i]>='a' && A[i]<='z')
{
A[i]=A[i]-32;
C[m]=A[i];
m++;
}
}

printf("\nString C:\n");
for(i=0; i<m; i++)
printf("\t%c",C[i]);

system("pause");
}

/*1.Napisati program na C-u kojim se sa tastature unosi znakovni niz S, a potom se vrši njegova
transformacija tako da se it njega
izbacuju svi samoglasnici.
Na ekran štampati transformisani string S. Pri transformaciji stringa S nije dozvoljeno koristiti pomoćne
nizove. */

#include<stdio.h>
#include<stdlib.h>
#include <string.h>

main()
{
char S[100];
int i,duzina;

printf("Unesite string S:\n");


gets(S);

duzina=strlen(S);
for(i=0; i<duzina;i++)
{
if( S[i]=='A' || S[i]=='a' || S[i]=='E' || S[i]=='e' || S[i]=='I' || S[i]=='i' ||
S[i]=='O' || S[i]=='o' || S[i]=='U' || S[i]=='u')

{
printf("\t%c",S[i]);
}

system("pause");
}

/*2. Napisati program na C-u kojim se od stringova A i B, koji se inicijalizuju pri deklaraciji i
koji predstavljaju vaše ime odnosno prezime, formira string C koji se sastoji od vašeg imena i
prezimena, zajedno, a kao poveznik medu njima se koristi srednja crtica. Npr. za studenta Petar
Petrovic, string C treba da izgleda: Petar-Petrovic. Na ekranu štampati stringove A, B i C.*/

#include<stdio.h>
#include<stdlib.h>
#include <string.h>

main()
{
char A[]={"Jovana"},B[]={"Gluhovic"},C[100];
int duzina_ime, duzina_prezime, i ,j,duzina_ime_prezime,k=0;

duzina_ime = strlen(A);
duzina_prezime = strlen(B);

printf("String C je: %s-%s",A,B);

system("pause");
}

/*2. Napisati program na C-u kojim se od stringova A i B, koji se inicijalizuju pri deklaraciji i
koji predstavljaju vaše ime odnosno prezime, formira string C koji se sastoji od vašeg imena i
prezimena, zajedno, a kao poveznik medu njima se koristi srednja crtica. Npr. za studenta Petar
Petrovic, string C treba da izgleda: Petar-Petrovic. Na ekranu štampati stringove A, B i C.*/

#include<stdio.h>
#include<stdlib.h>
#include <string.h>

main()
{
char A[]={"Jovana"},B[]={"Gluhovic"},C[100];
int duzina_ime, duzina_prezime, i ,j,duzina_ime_prezime,k=0;

duzina_ime = strlen(A);
duzina_prezime = strlen(B);

for(i=0; i<duzina_ime; i++)


{
C[k]=A[i];
k++;
}

C[k]='-';

printf("Novonastali niz je:\n");


for(i=0; i<k;i++)
printf("%c",C[i]);

for(j=0; j<=duzina_prezime;j++)
{
C[k+1]=B[j];
k++;
}

for(j=0; j<k;j++)
printf("%c",C[j]);

system("pause");
}

/*2. Napisati program na C-u kojim se sa tastature unosi znakovni niz S1, a potom se vrši
njegova transformacija tako da se iz njega izbacuju sve pojave znakova e i E ali samo pod
uslovom da se ti znakovi u nizu ispred znaka A. Na ekran štampati transformisani string
S1. Pri transformaciji stringa S1 nije dozvoljeno koristiti pomocne nizove.
Npr. string abcedeAmEAkEh nakon transformacije postaje abcedAmAkEh*/

#include<stdio.h>
#include<stdlib.h>
#include <string.h>

main()
{
char S1[100];
int i,j,duzina;

printf("Unesite string:\n");
gets(S1);

duzina=strlen(S1);

for(i=0; i<duzina; i++)


{
if( S1[i]=='E' || S1[i]=='e')
{
if( S1[i+1]=='A')
{

for(j=i; j<duzina; j++) //abcdeAmEakeh


{
S1[j]=S1[j+1];
}

duzina--;
}

}
}

printf("\nNovonastali niz je:\n");


puts(S1);

system("pause");
}

/*1. Napisati program na programskom jeziku C kojim se vrši transformacija stringa STRING,
koji se unosi sa tastature, tako da se ispred svake pojave znaka * u string STRING ubace
brojevi 5, 6 i 7. Transformisani string štampati na ekran. Primer: string ab*3d*e nakon
transformacije postaje ab567*3d567*e. */

#include<stdio.h>
#include<stdlib.h>
#include <string.h>

main()
{
char STRING[10];
int duzina=0,i,j,pom;
int n,k;

//ab*3d*e

printf("Unesite string:\n");

gets(STRING);

while(STRING[duzina]!='\0')
{
duzina++;
}

for(i=0; i<duzina; i++)


{
if( STRING[i]=='*')
{
n='7';

for(k=0; k<3; k++)


{
pom=STRING[duzina-1];

for(j=duzina-1; j>i; j--)


{

STRING[j]=STRING[j-1];
}

STRING[i]=n;
n--;
duzina++;
STRING[duzina-1]=pom;
}

i=i+4;
}

puts(STRING);
system("pause");
}

//Ne znam kako da se rijesim viska prostpra u memoriji.Zato na kraju imaju ovi neki znakovi koji su
slucajni brojevi
//iz memorije prikazani u obliku char

//Zadatak potpuno tacno uradjen,prethodni

#include<stdio.h>
#include<stdlib.h>
#include <string.h>
#define MAX 100
main()
{
char string[MAX];
int duzina,p,m,j,i;

printf("\nUnesite string:\n\n");
gets(string);

duzina=strlen(string);

for(i=0; i<duzina; i++)


{
if(string[i]=='*')
{
m='5';
for(p=0; p<3; p++)
{
duzina++;
for(j=duzina-1; j>i; j--)
{
string[j]=string[j-1];
}

string[j]=m;
m=m+1;
i=i+1;
}
}
}

string[duzina]='\0';
printf("\n\nNovonastali niz je:\n\n");
puts(string);

system("pause");

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void ime_prezime(char ime[],char prezime[])


{
char string[20];
int duzina_ime,duzina_prezime,j=0,i;

duzina_prezime=strlen(prezime);

string[j++]=ime[0];
string[j++]='.';
for(i=0; i<duzina_prezime; i++)
{
string[j++]=prezime[i];
}

string[j++]='\0';
puts(string);

main()
{
char ime[20],prezime[20],string[20];
printf("Unesite ime:");
gets(ime);

printf("\nUnesite prezime:");
gets(prezime);

ime_prezime(ime,prezime);
system("pause");
}

// Unijeti ime i prezime, funkcija vraca: A.Jovicic

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

main()
{
char ime[20],prezime[20],string[20];
int j=0,i,m,n; //m-duzina imena; n-duzina prezimena

printf("Unesite ime:");
gets(ime);

printf("\nUnesite prezime:");
gets(prezime);

m=strlen(ime);
n=strlen(prezime);

string[j++]=ime[0];
string[j++]='.';

for(i=0; i<n; i++)


{
string[j++]=prezime[i];
}

string[j++]='\0';

puts(string);

system("pause");

/*Napisati program kojim se u funkciji main


sa tastature unose dva stringa: prvi string u formatu ime_prezime_broj_indeksa,a zatim drugi string
ime_oca.
Pozivom pomocne funkcije sredi_string izvrsiti transformaciju prvog stringa
tako da se poslije imena u njega ubaci ime oca
u malim zagradama.Npr. ako je sa tastature unijet prvi string
Marko Markovic 1560 i drugi Janko,transformisan prvi string ce izgledati
Marko(Janko)Markovic 1560.U funkciji main stampati na ekran transformisan prvi string.*/

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 100

void sredi_string( char ime_prezime_br_indeksa[], char ime_oca[] )


{
int i,j,k=0,duzina1,duzina2,razmak=1,m;
char pom[MAX],temp=0;

duzina1=strlen(ime_prezime_br_indeksa);
duzina2=strlen(ime_oca);

i=1;

while(ime_prezime_br_indeksa[i]!=' ' && ime_prezime_br_indeksa[i]>='a' &&


ime_prezime_br_indeksa[i]<='z' )
{
razmak++;
i++;

for(i=0; i<razmak; i++)


{
pom[k]=ime_prezime_br_indeksa[i];
++k;
}

pom[k]='(';

for(j=0; j<duzina2; j++)


{
pom[++k]=ime_oca[j];
}

pom[++k]=')';

for(i=razmak; i>duzina1; i++)


{
pom[++k]=ime_prezime_br_indeksa[i];
}

pom[k]=')';

for(i=razmak; i<duzina1; i++)


{
pom[++k]=ime_prezime_br_indeksa[i];
}

pom[++k]='\0';

printf("\n\nTrazeni string je:\n\n");


puts(pom);

main()
{
char ime_prezime_br_indeksa[MAX],ime_oca[MAX];

printf("\n\nUnesite ime prezime i broj indeksa:\n\n");


gets(ime_prezime_br_indeksa);
printf("\n\nUnesite ime oca");
gets(ime_oca);

sredi_string(ime_prezime_br_indeksa,ime_oca);

system("pause");
}

/*Isti zadatak ali odradjen preko funkcije*/

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void ubaci_ime_oca( char ime_prezime_br_indeksa[],char ime_oca[])


{
char string[100];
int i,j,duzina,duzina2,brojac=0,k=0; //duzina2=duzina imena oca

duzina=strlen(ime_prezime_br_indeksa);
duzina2=strlen(ime_oca);

while(ime_prezime_br_indeksa[brojac]!=' ')
{
brojac++;
}

for(i=0; i<brojac; i++)


{
string[k]=ime_prezime_br_indeksa[i];
k++;
}

string[k]='<';

for(j=0; j<duzina2; j++)


{
string[++k]=ime_oca[j];

string[++k]='>';

for(i=brojac; i<duzina; i++)


{
string[++k]=ime_prezime_br_indeksa[i];

string[k]='\0';

puts(string);

main()
{
char ime_prezime_br_indeksa[100],ime_oca[100];

printf("Unesite ime,prezime i broj indeksa:");


gets(ime_prezime_br_indeksa);

printf("\nIme oca:");
gets(ime_oca);
ubaci_ime_oca(ime_prezime_br_indeksa,ime_oca);
system("pause");
}

//Najtacnije odradjen zadatak prethodni posto ovdje i jeste poenta da se transformise uneseni string,a ne
da se kreira pomocni string
/*Napisati program kojim se u funkciji main
sa tastature unose dva stringa: prvi string u formatu ime_prezime_broj_indeksa,a zatim drugi string
ime_oca.
Pozivom pomocne funkcije sredi_string izvrsiti transformaciju prvog stringa
tako da se poslije imena u njega ubaci ime oca
u malim zagradama.Npr. ako je sa tastature unijet prvi string
Marko Markovic 1560 i drugi Janko,transformisan prvi string ce izgledati
Marko(Janko)Markovic 1560.U funkciji main stampati na ekran transformisan prvi string.*/

/******************ISPITNI 14.7.2016.***********************************/

#include<stdio.h>
#include<stdlib.h>
#define MAX 100

void sredi_string (char ime_prezime_broj_indeksa[], char ime_oca[])


{
int M=0,N=0,i,j,k,p;

//Trazimo duzinu prvog stringa


while(ime_prezime_broj_indeksa[M]!=NULL)
{
M++;
}

while(ime_oca[N]!=NULL)
{
N++;
}

//Prvo cemo u string sa imenom oca dodati zagrade

N++;
ime_oca[N-1]=')';

N++;

for(j=N-1; j>0; j--)


{
ime_oca[j]=ime_oca[j-1];
}

ime_oca[j]='(';

ime_oca[N]=NULL;

//Sada prelazimo na string ime_prezime_broj_indeksa

k=0;
while(ime_prezime_broj_indeksa[k]!=' ')
{
k++;
}

j=N-1;
for(p=0; p<N ; p++)
{
M++;

for(i=M-1; i>k; i--)


{
ime_prezime_broj_indeksa[i]=ime_prezime_broj_indeksa[i-1];
}

ime_prezime_broj_indeksa[i+1]=ime_oca[j--];
}

ime_prezime_broj_indeksa[M]=NULL;

printf("\n\nTrnasformisan prvi string izgleda ovako:\n\n");

puts(ime_prezime_broj_indeksa);

main()
{
char ime_prezime_broj_indeksa[MAX],ime_oca[MAX];

printf("\n\nUnesite ime,prezime i broj ideksa:\n\n");


gets(ime_prezime_broj_indeksa);

printf("\n\nUnesite ime oca:\n\n");


gets(ime_oca);

sredi_string(ime_prezime_broj_indeksa,ime_oca);

system("pause");
}

/*10) Unijeti datum oblika d.m.g. i napraviti 3 nova stringa za dan, mjesec i godinu */

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

main()
{
char dan_mjesec_godina[20],dan[20],mjesec[20],godina[20];
int i,duzina,brojac=0,d=0,brojac_mjesec,m=0,brojac_godina,g=0;

printf("Unesite dan,mjesec i godinu u obliku D.M.G. : \t");


gets(dan_mjesec_godina);

duzina=strlen(dan_mjesec_godina);

while(dan_mjesec_godina[brojac]!='.')
{
brojac++;
}

for(i=0; i<brojac; i++)


{
dan[d]=dan_mjesec_godina[i];
d++;
}

dan[d]='\0';

printf("\nDan:");
puts(dan);

brojac_mjesec=brojac;
while(dan_mjesec_godina[brojac_mjesec+1]!='.')
{
brojac_mjesec++;
}

for(i=brojac; i<brojac_mjesec; i++)


{
mjesec[m]=dan_mjesec_godina[i+1];
m++;
}

mjesec[m]='\0';

printf("\nMjesec:");
puts(mjesec);

brojac_godina=brojac_mjesec+2;
while(dan_mjesec_godina[brojac_godina]!='.')
{
brojac_godina++;
}

for(i=brojac_mjesec+1; i<brojac_godina-1; i++)


{
godina[g]=dan_mjesec_godina[i+1];
g++;
}

godina[g]='\0';

printf("\nGodina:");
puts(godina);

system("pause");
}

/*Na programskom jeziku C napisati program kojim se sa tastature unosi string


koji će predstavljati adresu web stranice npr. www.google.com
a potom se vrši njegova transformacija na takav način da se on konvertuje u formu u kojoj se koristi u web
čitaču,
tj.dodati ispred adrese stranice http :// a nakon adrese /, odnosno,
nakon transformacije string iz primera treba da postane http://www.google.com/.
Štampati na ekran transformisani string.
Pri transformaciji stringa nije dozvoljeno koristiti funkcije iz biblioteke string.h.*/

#include<stdio.h>
#include<stdlib.h>
#define MAX 100

void prosiri (char string[])


{
int duzina,i,p,k=0,j,m;
char pom[]={"http://"};

//Racunamo duzinu prosljedjenog stringa


duzina=0;
while(string[duzina]!=NULL)
{
duzina++;
}

//Racunamo duzinu pomocnog stringa


k=0;
while(pom[k]!=NULL)
{
k++;
}
i=0;
j=k-1;

for(p=0; p<k; p++)


{
duzina++;

for(m=duzina-1; m>i; m--)


{
string[m]=string[m-1];
}
string[m]=pom[j--];
}

string[duzina]=NULL;
}

main()
{
char string[MAX];

printf("\n\nUnesite string:\n\n");
gets(string);

prosiri(string);

printf("\n\nDobijeni string je:\n\n");


puts(string);

system("pause");
}

//Pozvati korisnicku funkciju broj koja ce da vrati broj karaktera u stringu


//nakon toga pozvatri korisnicku funkciju zamijeni koja ce sve cifre u stringu zamijeniti sa *
// u funkciji main odstampati tako transformisan string.

#include<stdio.h>
#include<stdlib.h>

int broj(char string[])


{
int duzina=0;

while(string[duzina]!='\0')
{
duzina++;
}

return duzina;
}

void zamijeni(char string[])


{
int duzina,i;

duzina=broj(string);

for(i=0; i<duzina; i++)


{
string[i]='*';
}
}
main()
{
char string[100];
int duzina_stringa;
printf("Unesite string:\t");
gets(string);

duzina_stringa=broj(string);
printf("Duzina stringa je: %d\n",duzina_stringa);

zamijeni(string);
puts(string);

system("pause");
}

/*Napisati funkciju s imenom adresa() koja kao argument uzima


dva stringa koji predstavljaju ime i prezime a kao rezultat vraca
se novi string koji se dobije tako da se string koji predstavlja
prezime promijeni u string koji predstavlja e-mail adresu
slijedeceg oblika: [prezime].[ime]@etf.unsa.ba
Prototip funkcije je: char *adresa(char *ime, char *prezime)
Na primjer, ako su argumenti ime=“Marko“, prezime=“Markovic“
funkcija adresa() vraca pokazivac na rezultirajuci string prezime
koji je promijenjen u novi string oblika:
Markovic.Marko@etf.unsa.ba.*/

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void adresa(char ime[], char prezime[])


{
char string[50];
int i,duzina_ime,duzina_prezime,j,k=0;

duzina_ime=strlen(ime);
duzina_prezime=strlen(prezime);

for(j=0; j<duzina_prezime; j++)


{
string[k]=prezime[j];
k++;
}

string[k]='.';

for(i=0; i<=duzina_ime; i++)


{
string[++k]=ime[i];

string[k]='@';
string[++k]='e';
string[++k]='t';
string[++k]='f';
string[++k]='.';
string[++k]='u';
string[++k]='n';
string[++k]='s';
string[++k]='a';
string[++k]='.';
string[++k]='b';
string[++k]='a';
string[++k]='\0';
printf("\nNakon transformacije:\n");
puts(string);
}

main()
{
char ime[100],prezime[100];

printf("Unesite ime:\t");
gets(ime);

printf("\nUnesite prezime:\t");
gets(prezime);

adresa(ime,prezime);
system("pause");
}

/*Funkcija koja vraca string napisan unazad*/

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void unazad( char string[])


{
int duzina,i;

duzina=strlen(string);

for(i=duzina-1; i>=0; i--)


{
printf("%c",string[i]);
}
}

main()
{
char string[50];

printf("Unesite string:\t");
gets(string);

unazad(string);

system("pause");
}

/*String 11.10.2013 */

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 100

main()
{
char znak[MAX];
int i,duzina;
printf("Unesite string sastavljen od velikih slova engleskog alfabeta:\n\n");
gets(znak);

duzina=strlen(znak);

for(i=0; i<duzina; i++)


{
if(znak[i]=='A')
{
znak[i]='Z';
}

else if(znak[i]=='B')
{
znak[i]='Y';
}

else if(znak[i]=='C')
{
znak[i]='X';
}

else if(znak[i]=='Z')
{
znak[i]='A';
}

printf("\nTransformisani string izgleda ovako:\n");


puts(znak);

system("pause");
}

/*****************************************************************************/

/*********11.10.2013*********/
/*Na programskom jeziku C napisati pomocnu f-ju prebroj,kojoj se iz
glavnog programa prosljedjuje string i jedan karakter,a f-ji vraca
broj tih karaktera u unijetom stringu.
Uf-ji main unijeti STRING i jedan karakter,a na ekran odstampati broj karaktera pronadjen u stringu
koriscenjem f-je
prebroj().Koriscenje pomocnih nizova nije dozvoljeno ni header.h i string.h*/

#include<stdio.h>
#include<stdlib.h>
#define MAX 100

int prebroj ( char string[],char karakter)


{
int duzina,i,br=0;

duzina=0;
while(string[duzina]!=NULL)
{
duzina++;
}

for(i=0; i< duzina; i++)


{
if(string[i]==karakter)
{
br++;
}
}
return br;
}

main()
{
char string[MAX],karakter;
int broj;

printf("\n\nUnesite string:\n\n");
gets(string);

printf("\n\nUnesite karakter:");
scanf("%c",&karakter);

broj=prebroj(string,karakter);

printf("\n\nBroj ponavljanja je %d",broj);

system("pause");
}

/**************************************************************************/

/*************ROK 26.oktobar 2016 STRING-F-JA*************************/

/*Napisati program na programskom jeziku C koim se


u funkciji main sa tastature unose dva stringa,pri cemu drugi string treba da bude
kraci od prvog i omoguciti ponovni unos ako to nije ispunjeno.pozivom funkcije podniz provjeriti da li se
drugi string nalazi kao podniz u prvom
i ako nalazi sve pojave drugog stringa izbaciti iz prvog.U slucaju da se ne nalazi nijednom ,izvrsiti
transformaciju prvog stringa tako da se drugi
string nadoveze na prvi.U tom slucaju u f-ji main stampati na ekran transformisani string.*/

#include<stdio.h>
#include<stdlib.h>
#define MAX 100

int podniz (char A[],char B[],int M,int N)


{
int i,j,k,p,n,br=0,br_podniz=0;

for(i=0; i<M; i++)


{
if(A[i]==B[0])
{
br=0;
n=i;
for(j=0; j<N; j++)
{
if(B[j]==A[n])
{
br++;
n++;
}
}

if(br==N)
{
br_podniz++;
}

}
}

if(br_podniz==0)
{
j=0;
for(p=0; p<N; p++)
{
M++;
A[M-1]=B[j++];
}

A[M]=NULL;
}

return br_podniz;

main()
{
char S1[MAX],S2[MAX];
int M,N,br_podniz;

printf("\n\nUnesite prvi string:\n\n");


gets(S1);

M=0;
while(S1[M]!=NULL)
{
M++;
}

do{
printf("\n\nUnesite drugi string:\n\n");
gets(S2);

N=0;
while(S2[N]!=NULL)
{
N++;
}

}while(N>M);

br_podniz=podniz(S1,S2,M,N);

printf("\n\nBroj pojavljivanja drugog u prvom stringu je %d",br_podniz);

printf("\n\nTransformisani string je:\n\n");


puts(S1);

system("pause");
}

/*****************************************************************************/

/*************ROK 9. septembarski 2016 STRING-F-JA*************************/

/*Napisati program na programskom jeziku C koim se


u funkciji main sa tastature unose dva stringa,pri cemu drugi string treba da bude
kraci od prvog i omoguciti ponovni unos ako to nije ispunjeno.pozivom funkcije podniz provjeriti da li se
drugi string nalazi kao podniz u prvom
i ako nalazi sve pojave drugog stringa izbaciti iz prvog.U slucaju da se ne nalazi nijednom ,izvrsiti
transformaciju prvog stringa tako da se drugi
string nadoveze na prvi.U tom slucaju u f-ji main stampati na ekran transformisani string.*/

#include<stdio.h>
#include<stdlib.h>
#define MAX 100

void podniz (char A[],char B[],int M,int N)


{
int i,j,k,p,n,br=0;

for(i=0; i<M; i++)


{
if(A[i]==B[0])
{
br=0;
n=i;
for(j=0; j<N; j++)
{
if(B[j]==A[n])
{
br++;
n++;
}
}

if(br==N)
{
for(p=0; p<N; p++)
{
for(k=i; k<M; k++)
{
A[k]=A[k+1];
}

M--;
}
}

}
}

if(br==0)
{
j=0;
for(p=0; p<N; p++)
{
M++;
A[M-1]=B[j++];
}

A[M]=NULL;
}

main()
{
char S1[MAX],S2[MAX];
int M,N;

printf("\n\nUnesite prvi string:\n\n");


gets(S1);

M=0;
while(S1[M]!=NULL)
{
M++;
}

do{
printf("\n\nUnesite drugi string:\n\n");
gets(S2);

N=0;
while(S2[N]!=NULL)
{
N++;
}

}while(N>M);

podniz(S1,S2,M,N);

printf("\n\nTransformisani string je:\n\n");


puts(S1);

system("pause");
}

/***********************************************************************************/

/*************ROK 9. septembarski 2016 STRING-F-JA*************************/

/*Unijeti sa tastature rastucu sekvencu visecifrenih prirodnih brojeva.


Sekvencu prekinuti unosom prve vrijednosti koja prekida rastuci poredak.Koristeci unijetu sekvencu
kreirati string
ciji ce elementi biti dekadne cifre iz ASCII koda.Uraditi zadatak bez koristenja ASCII tabele,biblioteka
string.h i ctype.h*/

#include<stdio.h>
#include<stdlib.h>
#define MAX 100

main()
{
int niz[MAX],i=0,k=0,j=0,s,n,br_cifara=0,d=0;
char string[MAX];

j=0;
printf("\n\nUnesite %d. broj:",++j);
scanf("%d",&s);

if(s>9)
{
niz[k++]=s;
}

++j;
printf("\n\nUnesite %d. broj:",++j);
scanf("%d",&n);

if(n>9)
{
if(n>s)
{
niz[k++]=n;

do{
s=n;
++j;
printf("\n\nUnesite %d. broj:",++j);
scanf("%d",&n);

if(n>9 && n>s)


{
niz[k++]=n;
}

}while(n>s);
}
}
for(i=0; i<k; i++)
{
n=niz[i];
while(n>0)
{
br_cifara++;
n=n/10;
}

string[d++]=br_cifara;
br_cifara=0;

for(i=0; i<d; i++)


{
printf("%d\t",'0'+string[i]);
}

system("pause");
}

You might also like