U jednodimenzionalno polje spremaju se podaci o zaposlenicima:
ime (50+1 znak), prezime (50+1 znak) te broj ureda (int). Podaci
se citaju iz datoteke employees.txt. Prvi redak sadrzi broj zapisa u
datoteci. Dinamicki alocirajte memoriju i ucitajte sve podatke.
Podaci o zaposlenicima sortirani su prema prezimenu. Dinamicki
alocirajte memoriju za dva znaka i potom trazite od korisnika unos
dva znaka. Nakon toga poziva se funkcija write koja ce u svim
imenima i prezimenima zamijeniti svako pojavljivanje znaka
oldChar sa znakom newChar. U glavnoj funkciji ispisuju se svi
podaci o zaposlenicima. Koristiti aritmetiku pokazivaca.
*/
#include
#include
#include
using namespace std;
struct employee
{ char name[51], surname[51];
int office;
};
void write(employee *p, int n, char *oldChar, char *newChar);
int main()
{ ifstream input("employees.txt");
int n, i=0;
input>>n;
employee *p=new employee[n]; //2
while (input>>p[i].surname)
{ input>>p[i].name>>p[i].office;
i++; }
char *oldChar=new char, *newChar=new char; //1
cout<<"Unesi nedozvoljeni znak: "<
cout<<"Unesi zamjenski znak: "<
write(p, n, oldChar, newChar);
delete [] p; //1
delete oldChar; //0.5
delete newChar; //0.5
input.close();
return 0;
}
void write(employee *p, int n, char *oldChar, char *newChar)
{cout<
while((p+i)->surname[t]!='\0') //2
{ if (p[i].surname[t]==*oldChar) p[i].surname[t]=*newChar;
t++; //! }
t=0;
while((*(p+i)).name[t]!='\0')
{ if (p[i].name[t]==*oldChar) p[i].name[t]=*newChar;
t++;
}
Post je objavljen 24.04.2013. u 02:02 sati.