Kod: |
cout<<text[i]<<''; |
Kod: |
cout<<text[i]<<" "; |
Kod: |
#include <iostream>
#include <vector> #include<string> using namespace::std; int main(){ vector<string> text; string word; while( (cin>>word) && (word!="EOF(^Z)") ) text.push_back(word); cout<<"Procitane rijeci:"<<endl; for(unsigned int i=0; i!=text.size(); ++i) cout<<text[i]<<" "; cout<<endl; scanf("%%"); return 0; } |
Kod: |
it=text.end(); if(*it=="EOF(^Z)"){ |
Kod: |
if (*it == "EOF(^Z)") { |
Kod: |
if (word == "EOF(^Z)") { |
Kod: |
while (cin >> word) { text.push_back(word); } cout << "Procitane rijeci: " << endl; for (int i = 0; i < text.size(); ++i) { cout << text[i] << " "; } |
charlotte (napisa): |
Moze jos mala pomoc oko onog sa stringovima ? |
Kod: |
int f(string p){
int br1=0,gdje,duljina; string q; q=p; duljina=q.size(); while (duljina) { gdje = q.find("ab",0); if(gdje==string::npos) break; else { ++br1; q = q.substr(gdje+2,duljina-2); duljina = q.size(); if (gdje== duljina) break; } } return br1; } |
charlotte (napisa): |
Ovako nesto nejde: void f(listi<string> L) ili void f(list<string>* p) |
Kod: |
#include <iostream>
#include <string> using namespace std; [color=red]struct broj_zbrajanje;[/color] struct broj { int* znamenke; int duljina; broj(){} broj( const string ); broj( const broj& ); broj( [color=red]const broj_zbrajanje& x[/color] ){ *this = x; } broj& operator=( [color=red]const broj_zbrajanje&[/color] ); ~broj(); friend [color=red]broj_zbrajanje[/color] operator+( const broj&, const broj& ); }; [color=red] struct broj_zbrajanje{ const broj& a; const broj& b; broj_zbrajanje( const broj& a, const broj& b ): a( a ), b( b ) {} };[/color] broj::broj( const string s ){ duljina = s.size(); znamenke = new int[ duljina ]; for( int i = 0; i < duljina; i++ ) znamenke[i] = s[i] - '0'; } broj::broj( const broj& x ){ znamenke = new int[ x.duljina ]; duljina = x.duljina; for( int i = 0; i < duljina; i++ ) znamenke[i] = x.znamenke[i]; } broj& broj::operator=([color=red] const broj_zbrajanje& x[/color] ){ if( znamenke ) delete [] znamenke; int max = x.a.duljina; int a = x.a.duljina - 1,b = x.b.duljina - 1, c = 0; if( x.b.duljina > max ) max = x.b.duljina; znamenke = new int[ max + 1 ]; duljina = max + 1; for( int i = max; i >= 0; i-- ){ int suma_a = (a >= 0) ? x.a.znamenke[a] : 0; int suma_b = (b >= 0) ? x.b.znamenke[b] : 0; a--;b--; znamenke[i]=(suma_a+suma_b+c)%10; c = (suma_a+suma_b+c)/10; } } broj_zbrajanje operator+( const broj& x, const broj& y ){ return [color=red]broj_zbrajanje( x, y )[/color]; } void ispis( const broj& x ){ if( x.znamenke[0] != 0 ) cout << x.znamenke[0]; for( int i = 1; i < x.duljina; i++ ) cout << x.znamenke[i]; cout << endl; } broj::~broj(){ if( znamenke ) delete [] znamenke; } int main(){ broj a("99999999999999999999999999999"); broj b("1"); broj c = a + b; ispis( c ); system("pause"); return 0; } |
Kod: |
broj operator+(const broj& a, const broj& b) |
Kod: |
broj& operator=( const broj_zbrajanje& x ){ |
Luuka (napisa): |
A imam i ja pitanje, kako napraviti vektor sa pametnim pokazivačem? Jesu li to dvije odvojene klase, dje se provjerava koji operator [] je pozvan, kada sve konstruirati novi objekt? I ja sam matricu (najjednostavnije mi je bilo) implementirao C-ovski, kao dupli pointer. No, tad nema nekog smisla radit razliku između dijagonalne i obične... |
output generated using printer-friendly topic mod. Vremenska zona: GMT + 01:00.