bok,
imam jedan zadatak u kojemu nikako ne mogu skuzit kako da u jednodimenzionalnom polju upisem brojeve znakova svake rijeci iz stringa, pa bih vas zamolio ako mi neko moze pomoci.
zadatak je sav rijesen osim tog dijela.
nadam se da nisam fulao PDF.
/*Stvorite polje od n naziva ustanova.
Pronađite najkraći naziv ustanove i kopirajte ga u string S.
U stringu S pretvorite prvo i zadnje slovo predzanje riječi u veliko slovo.
U funkciji suma pronađite sumu ASCII kodova stringa S te u funkciji pretvori pretvorite dobivenu sumu ASCII kodova u sustav s bazom 19.
Stvorite jednodimenzionalno dinamicko polje N u koje cete upisati brojeve znakova svake rijeci stringa S.
Ispišite polje naziva ustanova, string S, dobiveni ekvivalent u sustavu s bazom 19 i dinamičko polje N.*/
Kod:
#include "stdafx.h"
#include <iostream>
#include <string>
#include <ctype.h>
#define naziv 100
#define slova 100
using namespace std;
int suma(char znak[])
{
int i, sum=0;
for(i=0;i<strlen(znak);i++)
sum+=znak[i];
return sum;
}
void pretvori(int broj, int baza)
{
if(broj >= baza)
pretvori(broj/baza,baza);
if(broj%baza >= 10)
cout<<char ((broj%baza)+55);
else
cout<<broj%baza;
}
void main()
{
char ustanova[naziv][slova], S[slova];
int i, j, n, duljina=100, s;
cout<<"Koliko ustanova zelite upisati? ";
cin>>n;
cout<<endl;
cin.ignore();
int *DULJINA = new int [n];
int *N = new int [n];
for(i=0;i<n;i++)
{
cout<<"Upisite naziv "<<i+1<<". ustanove: ";
cin.getline(ustanova[i],slova);
*(DULJINA+i) = strlen(ustanova[i]);
if(strlen(ustanova[i]) < duljina)
{
duljina = strlen(ustanova[i]);
strcpy(S,ustanova[i]);
}
}
for(i=strlen(S);i>0;i--)
{
if(S[i]==' ')
{
S[i-1]=toupper(S[i-1]);
for(j=i-1;j>0;j--)
{
if(S[j]==' ')
{
S[j+1]=toupper(S[j+1]);
break;
}
}
break;
}
}
//???????? brojanje znakova svake rijeci u stringu
cout<<endl;
for(i=0;i<n;i++)
cout<<"Naziv "<<i+1<<". ustanove je: "<<ustanova[i]<<endl<<endl;
cout<<"Najmanji naziv ustanova je: "<<S<<endl<<endl;
s = suma(S);
cout<<"Ekvivalent sume ASCII kodova "<<s<<" stringa S je: ";
pretvori(s,19);
cout<<endl;
for(i=0;i<n;i++)
cout<<"Broje znakova u "<<i+1<<". nazivu je: "<<*(DULJINA+i)<<endl<<endl;
}
hvala unaprijed na svakom ulozenom trudu.