naytto.cpp =========== //----------------------------------------------------------------------- void cNaytto::etsi_jasenen_tiedot(char valinta) { //0123456789 static string merkit="0123456789ABCDEFGHIJKLMNOPQRS"; otsikko(valinta,"Etsi jäsenen tiedot"); unsigned int k; string jono; cout << "Minkä mukaan haluat etsiä?\n"; cJasen apujasen; string sallitut = ""; for (int j=apujasen.eka_kysymys();j 9 ) merkki = 'A'+j-10; // ??? char merkki = merkit[j]; sallitut += merkki; cout << merkki << " = " << apujasen.kysymys(j) << "\n"; } sallitut += '?'; char nappula = odota_nappain(sallitut.c_str(),'?',MERKKI_ISOKSI); k = merkit.find(nappula); // if ( k == string::npos ); cout << "Anna hepun " << apujasen.kysymys(k) << ">"; // getline(cin,jono); kerho->lajittele(k); for (int i=0; iJasenia(); i++) { const cJasen &jasen = kerho->anna_jasen(i ); if ( onko_samat(jasen.kentta_jonoksi(k),jono) == 0 ) { tulosta(cout,jasen); odota_jotakin(); } } } ============ jasenet.cpp =========== static int gk; int vertaile(const void *pa, const void *pb) { int a = *(int *)pa; int b = *(int *)pb; cJasen *pja = *(cJasen **)pa; cJasen *pjb = *(cJasen **)pb; string sa = pja->kentta_jonoksi(gk); string sb = pjb->kentta_jonoksi(gk); return sa.compare(sb); // if ( sa < sb ) return -1; // if ( sa == sb ) return 0; // return 1; } void cJasenet::lajittele(int k) { gk = k; qsort(alkiot,lkm,sizeof(alkiot[0]),vertaile); // sort // STL:n algoritmeistä }