[ gifron @ 14.11.2010. 18:35 ] @
zapeo sam na jednom zadatku pa bih molio za pomoc.
Zadatak glasi:
Napisi program koji ce ispisati koliko rijeci ima ucitana recenica.

Ovaj zadatak mi hitno treba.

Takodjer ako mozete provjeriti gdje sam pogrijesio u ovom zadataku, treba unijeti recenicu do 80 znakova i ispisati rijeci u recenici sastavljeno:
Code:
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    char i, string[80];
    
    cout<<"Unesite recenicu do 80 znakova: "; 
    for (i=0;i<80;i++)
    cin>>string[i];
    
    
    char puno_recenica[80];
    if (i>80)
    cout<< "imate previse znakova";
    else
    for (i=0;i<80;i++)
    strcpy(puno_recenica, string);     
    strcat(puno_recenica, "");     
    
   
   cout<< puno_recenica << endl;
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
 


Unaprijed hvala.
[ Goran Rakić @ 14.11.2010. 18:43 ] @
Hajde pokušaj da nam objasniš šta si ovim kodom hteo da kažeš? Vidim na početku imaš petlju koja ide 0..79 i učitava po jedan znak sa ulaza. Šta dalje i zašto? Šta ako korisnik unese samo 10 znakova, kako se petlja prekida?
[ gifron @ 14.11.2010. 18:48 ] @
U tome je i problem. Ne znam kako da se stavi da kad se npr. pritisne enter zaustavi unos karaktera i ispisu ostali karakteri spojeni.
Nemam bas iskustva sa c++ pa bih molio za pomoc.
[ X Files @ 14.11.2010. 19:43 ] @
Recenica (u skolskom smislu) je zapravo niz karaktera koji se zavrsava sa NULL, odnosno \0.

Ako zelis da ispises sadrzaj tog niza bez blanko karaktera, onda ti treba petlja koja krece od prvog karaktera niza pa sve do trenutka kada naidje na NULL, izbegavajuci SPACE.

Code:

for ( int i=0; tekst[i]; i++ ) // tekst[i] != NULL
    if ( tekst[i] != ' ' ) // ' ' je blanko
        cout << tekst[i]; // ispisi jedan karakter, koji sigurno nije SPACE, jer smo to izbegli
    cout << endl; // na kraju, predji u novi red za naredne ispise



Sto se tice unosa, C/C++ jezici nude puno resenja, a nijedno nije idealno :) Recimo, za ogranicavanje unosa mozes koristiti:
http://www.cplusplus.com/reference/clibrary/cstdio/fgets/

Ipak, smunjam da je smisao tog zadatka u testiranju da li je uneto vise ili manje od 80 karaktera, pre ce biti da je prolazak petjom od pocetka do kraja niza uz nesto logike u njoj.


Brojanje reci u recenici?
Google: "C%2B%2B count words"
Npr:
...
http://www.cplusplus.com/forum/beginner/10578/
...