STRINGOVI – ZADACI 1
1. Napisati program u kome korisnik unosi jedan red teksta a program kao izveštaj prikazuje na ekranu
broj malih slova, velikih slova, cifara, i praznina.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
int main()
{
int duz,vel=0,mat=0,cif=0,raz=0,i;
char tekst[80];
puts("Uneti tekst\n");
gets(tekst);
duz=strlen(tekst);
for( i=0;i<duz;i++)
{
if(islower(tekst[i])) mat++;
else if(isupper(tekst[i]))vel++;
else if(isdigit(tekst[i]))cif++;
else if(isspace(tekst[i]))raz++;
}
printf("Mala slova: %d\n",mat);
printf("Velika slova: %d\n",vel);
printf("Cifre: %d\n",cif);
printf("Razmaci: %d\n",raz);
getch();
return 0;
}
2. Napisati program u kome korisnik unosi jedan red teksta, a program prikazuje broj znakova, slova,
malih slova, velikih slova, cifara, reči, rečenica.
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
int main()
{
char tekst[80];
int i,br, mal=0, vel=0, cif=0, reci=0, recenica=0, slova=0;
gets(tekst);
br= strlen(tekst);
printf("\nBroj simbola:\t\t%d",br);
for( i=0; i<br; i++)
{
if(isalpha(tekst[i])) slova++;
else if(isspace(tekst[i])) reci++;
else if(islower(tekst[i])) mal++;
else if(isupper(tekst[i])) vel++;
else if(isdigit(tekst[i])) cif++;
else if((tekst[i]=='.')||(tekst[i]=='!')||(tekst[i]=='?')) recenica++;
}
1
printf("\nBroj slova:\t\t%d",slova);
printf("\nBroj reci:\t\t%d",reci);
printf("\nBroj recenica:\t\t%d",recenica);
printf("\nBroj mala slova:\t%d",mal);
printf("\nBroj velika slova:\t%d",vel);
printf("\nBroj cifara:\t\t%d",cif);
getch();
return 0;}
3. Napisati program koji će učitati string i
ispisati koliko puta se odredjeni karakter
pojavljuje u tom stringu
#include <stdio.h>
#include <conio.h>
#include <string.h>
int broj_slovox(char x, char s[]) // ili *s
{ int i,br=0;
for (i=0;i<strlen(s);i++)
if (s[i]==x) br++;
// da bi brojali i velika i mala mozemo sve da petvorimo u velika slova – onda bi rezultat bio 3 slova D.
// if (toupper(s[i])==toupper(x)) br++;
return br;
}
int main()
{
char x,str[50];
printf("\nProgram broji pojavljivanje nekog slova u stringu\n");
printf("\nUnesite string: \n");
gets(str);
printf("\nUnesite slovo: ");
scanf("%c",&x);
printf("Slovo '%c' se u stringu pojavljuje %d puta",x,broj_slovox(x,str));
return 0;
}
4. Napisati program koji sva slova u stringu prebacuje u velika (mala).
#include <stdio.h> //U velika:
#include <conio.h>
#include <string.h>
#include <ctype.h>
int main()
{ int i;
char str[60];
printf("Program prebacuje sva slova stringa u velika\n");
printf("Unesite string: \n");
U mala (razlikuje se samo for petlja):
gets(str);
for (i=0;i<strlen(str);i++)
for (i=0;i<strlen(str);i++)
if isupper(str[i]) str[i]+=32;
if (islower(str[i])) str[i]-=32;
ili, upotrebom funkcije tolower:
printf("Novi string glasi \n");
for (i=0;i<strlen(str);i++)
puts(str);
str[i]=tolower(str[i]);
getch();
return 0;
}
2
5. Program koji ispisuje mala slova engleske abecede
#include <stdio.h>
#include <conio.h>
int main()
{
char t[30];
int i;
printf("\nAbeceda:\n\n");
for (i=0;i<26;i++)
t[i]='a'+i;
t[26]='\0';
puts(t);
getch();
return 0;}
6. Program koji ispisuje tabelu ASCII karaktera u 19 redova i 5 kolona,pocev od znaka blanko.
#include <stdio.h>
#include <conio.h>
int main()
{
char c;
int i;
printf("\nTablica ASCII kodova\n\n");
for (c=' ';c<' '+19;c++)
{
for (i=0;i<95;i+=19)
printf("%3d %c ",c+i,c+i);
putchar('\n');
}
return 0;
}
7.Izračunati dužinu stringa i napisati string unazad uz pomoć funkcija
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main()
{
char tekst[80];
gets(tekst);
//f-ja za duzinu stringa kao strlen(s)
//f-ja za duzinu stringa kao
strlen(s)
int duzina_stringa(char s[]) // ILI int duzina_stringa( char *s)
{
int i;
for (i = 0; s[i]; i++); // ili for( i = 0; s[i] != '\0'; i++ );
return i;
}
int duzina( char *s )
{
int i=0;
while( *s++ != '\0' ) i++;
return i;
}
3
/* Funkcija obrce nisku karaktera */
void obrni_string(char s[])
{
int i, j;
for (i = 0, j = duzina_stringa(s)-1; i<j; i++, j--)
{
int pom = s[i];
s[i] = s[j];
s[j] = pom;
}
}
printf("\nDuzina stringa:\t%d\n",duzina_stringa(tekst));
obrni_string(tekst);
printf("Obrnuti tekst je: \n");
puts(tekst);
getch();
return 0;}
8. Napisati program koji će učitati string i ispisati ga unatraške.
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main()
{
int i;
char str[50]; /*String je niz karaktera*/
printf("\nProgram pise string unatraske\n");
printf("\nUnesite string: \n");
gets(str);
printf("\nOvaj string unatraske glasi: \n");
for (i=strlen(str) -1;i>=0;i--)
printf("%c",str[i]);
getch();
return 0;
}
9.Napisati program koji ispisuje dati string u direktnom i inverznom poretku.
SA POKAZIVAČIMA
#include <stdio.h>
int main()
{char str [100];
char *pok;
printf ("Unesite string \n");
gets(str); // ili samo pok=gets(str);
pok=str; // ili samo pok=gets(str);
printf("String u direktnom poretku I: \n");
printf("%s\n",str);
printf ("String u direktnom poretku II: \n");
while(*pok!='\0')
// Cesto cemo pisati i kao while(*pok)
putchar (*pok++);
printf("\nString u inverznom poretku \n");
while(--pok>=str)
putchar(*pok);
return 0;}
4
10. Napisati program koji iz stringa izbacuje sve tacke.
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main( )
{
char s[80];
int i,j;
puts("Ucitajte neki string");
puts("iz njega ce se izbaciti sve tacke");
gets(s);
for (i=j=0;i<strlen(s);i++)
if(s[i]!='.')
{
s[j]=s[i];
j++;
}
s[j]='\0';
puts(s);
getch();
return 0;
}
11. Napisati funkciju izbaci_praznine koja iz stringa str izbacuje sve praznine.
#include <stdio.h>
#define MAX_SIZE 100
void izbaci_praznine(char *s,char *rez)
{
while (*s)
{
if(*s==' '||*s=='\t') s++;
else *rez++=*s++;
}
*rez= '\0';
}
int main()
{
char rez [MAX_SIZE], str[MAX_SIZE];
printf("Unesite teks: \n");
gets (str);
izbaci_praznine(str, rez);
puts(rez);
puts(str);
return 0;
}
5
12.Napisati funkciju koja iz stringa s brise svako pojavljivanje znaka c.
#include <stdio.h>
#define MAX_SIZE 100
void izbaci_znakC(char *s,char c)
{ char *s1=s;
while (*s1)
{
if(*s1!=c) *s++=*s1;
s1++;
}
*s= '\0';
}
int main()
{
char c, str[MAX_SIZE];
printf("Unesite string:\n");
gets(str);
printf("Unesite znak koji hocete da brisete iz stringa:\n");
scanf("%c",&c);
izbaci_znakC(str,c);
puts(str);
return 0;
}
13. Kao ulaz se unose dva stringa, sl i s2. Kao rezultat treba ispisati string koji je nastao nadovezivanjem
stringa s2 na kraj stringa sl.
#include <stdio.h>
int main()
{
char str1[100],str2 [100],str [200];
char* sl,*s2;
int i=0;
printf ("Unesite prvi string: ");
gets(str1);
printf ("Unesite drugi string: ");
gets(str2);
sl=str1;
s2=str2;
while(*sl)
str [i++]=*sl++;
while(*s2)
str [i++]=*s2++;
str[i] ='\0';
printf("Rezultujuci string je: %s",str);
return 0;
}
//ILI SAMO puts(strcat(str1,str2);
6
14. Napisati program koji proverava da li je uneti string palindrom.
#include <stdio.h>
#include <conio.h>
#include <string.h>
int palindrom(char *s) // ili
int palindrom(char s[])
{
char *p=s+strlen(s)-1;
#include <stdio.h>
while(s<p && *s==*p)
#include <conio.h>
{s++;p--;}
#include <string.h>
return(s>=p);
int main()
}
{int i,n,isti=0;
int main()
char str[50]; /*String je niz karaktera*/
{
printf("\nProgram palindrom\n");
char str[50]; /*String je niz karaktera*/
printf("\nUnesite string: \n");
printf("\nProgram palindrom\n");
gets(str);
printf("\nUnesite string: \n");
n=strlen(str);
gets(str);
for(i=0;i<n;i++)
if(palindrom(str))
if (str[i]!=str[n-i-1]) isti=1;
if (isti==0) printf("Jeste palindrom \n");
printf("Jeste \n");
else printf("nije");
else printf("nije");
getch();
getch();
return 0;
return 0;
}
}
15. Napisati program koji iz stringa izbacuje sve samoglasnike.
#include <stdio.h>
#include <conio.h>
#include <string.h>
int samoglasnik(char x)
{
switch (x)
{
case 'a': case 'A':
case 'e': case 'E':
case 'i': case 'I':
case 'o': case 'O':
case 'u': case 'U': return 1; break;
default: return 0; break;
}
}
int main()
{
char s[80],*p;
puts("Ucitajte neki string,");
puts("iz njega ce se izbaciti svi samoglasnici");
gets(s);
for (p=s; p<s+strlen(s); p++) // s mora zbog adrese na koju pokazuje
while (samoglasnik(*p))
strcpy(p,p+1); //String na koji pokazuje p+1 se kopira u oblast memorije na koju pokazuje p.
*p='\0';
puts(s);
getch();
return 0;
}
7
16.Napisati program koji dati string str menja tako što mala slova pretvara u velika, a velika slova u mala.
#include <stdio.h>
#include <ctype.h>
int main() {
char str[100] ;
char* s;
printf("Uneti string: ");
gets (str);
s=str;
while(*s) {
if(isupper(*s)) *s=tolower(*s);
else if(islower(*s)) *s=toupper(*s);
s++;
}
printf("String : %s",str);
return 0;
}
17.Napisati program koji ispisuje koja slova se pojavljuju u stringu i koliko puta.
#include <stdio.h>
#include <ctype.h>
int main() {
int slova[26], i;
char str [100] ;
char* s;
printf("Unesite string ");
gets(str);
s=str;
for(i=0;i<26;i++)
slova[i]=0;
//Popunjavamo broj slova nulama
while(*s) {
if(isupper(*s)) slova[(*s)-'A']++;
else if(islower(*s)) slova[(*s)-'a']++;
s++;
}
for(i=0; i<26;i++)
if (slova[i]!=0)
printf("%c se pojavilo %d puta\n", 'A'+i,slova[i]);
return 0;
}
18. Napisati funkciju reci koja ispisuje sve reči koje se pojavljuju u zadatom stringu str u novom redu.
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 100
void reci(char *s) {
int i;
for(i=0;i<strlen(s);i++)
if(s[i]==' ') printf("\n");
else putchar(s[i]);
}
8
int main () {
char s[MAX_SIZE];
printf("Unesite string ");
gets(s);
reci(s);
return 0;
}
19. Napisati program koji pomoću funkcije sort_str sortira učitani niz stringova po alfabetskom redosledu.
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 100
void sort_str (char* niz_str[], int n)
{
i,j;
char* tmp;
for(i=0; i<n-1;i++)
for(j=i+1;j<n;j++)
if(strcmpi(niz_str[i],niz_str[j])>0)
{
tmp=niz_str[i];
niz_str[i]=niz_str[j];
niz_str[j]=tmp;
}
}
int main()
{
char niz_str [MAX_SIZE] [MAX_SIZE];
char *pok [MAX_SIZE];
int i, n;
do
{
printf ("Koliko stringova ucitavate: \n");
scanf ("%d",&n);
if(n>MAX_SIZE)
printf("Vrednost je prevelika, pokusajte ponovo!");
}
while(n>MAX_SIZE);
fflush(stdin); // ili getchar(); koji ce izvuci preostali newline iz buffer-a (\n) posle 2 scanf-a ili printf-a
for(i=0;i<n;i++)
{
printf ("\nUnesite %d. string ",i);
gets(niz_str [i] );
pok[i] =niz_str[i];
}
sort_str (pok,n);
for(i=0;i<n;i++)
puts(pok[i]);
return 0;
}
9
Download

STRINGOVI – ZADACI 1 1. Napisati program u kome