Forumi
Home Pravila i pomoć Članovi Kalendar Današnji postovi


Povratak   PC Ekspert Forum > Računala > Software > Web dizajn, programiranje i ostalo
Ime
Lozinka

Odgovori
 
Uređivanje
Staro 03.05.2010., 19:10   #1
white34gle
Registered User
 
Datum registracije: May 2010
Lokacija: Slavonski Brod
Postovi: 4
Pomoć za C++

ovako, prvo isprika što mi je prvi POST pomoć, a ne predstavljanje ili nešto drugo (pomoć drugima), ali evo obećajem da ću uskoro i to srediti, samo što mi je ovo hitno!

ovako, trebam napraviti program u C++ koji će
a) upisati rečenicu i svaku riječ staviti u novi red, a rečenica će završiti unosom točke.

ima pod b,c i d....ali za sada s ovim ću biti zadovoljan, evo ja sam pokušao i kompajlirao, ali nisam dobio dobro rješenje.....

a za one koji ne znaju...getche(); funkcija je posebna funkcija u conio.h biblioteci, koja upisuje sve što je uneseno sa tipkovnice (get char echo) (to kažem jer biblioteka nije u standardu C i C++ jezika.)
ako netko ima bolje rješenje od getch(); kao što sam vidio nešto keystrokes(); i slično nešto, bio bih zahvalan.

hvala puno unaprijed!!

Code:
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>

int upis(char r[])
{
    int n;
    puts("Upisite recenicu");

    do 
    {
        r[n]=getche();
        n++;
        
    if (r[n-1] == ' ')       //provjera praznog mjesta
    printf ("\n");
                  }
    while (r[n-1] != '.');
    r[n]='\0';       //oznaka kraja niza znakova
    

    
    return n;    
}

main()
{
      char r[]={};
      int n;
      
      n=upis(r);
      
      printf("%s",n);
      system("pause");
      }
white34gle je offline   Reply With Quote
Staro 03.05.2010., 20:16   #2
Ivo_Strojnica
PRO
Moj komp
 
Ivo_Strojnica's Avatar
 
Datum registracije: Apr 2010
Lokacija: Zagreb
Postovi: 4,714
Rješenje tvoga problema.
Kod dinamički pregleda upisano znak, te po tvojim uvjetima odredi šta da radi s njim.
Code:
#include <stdio.h>
#include <conio.h>


int main()
{
    char unos="a";


    while(1)
    {
        unos=getch(); //ucitavam slovo

        if(unos== ' ') //gledam da li je razmak
        {
            printf("\n");
        }
        else if(unos== '.')//ako je točka, ispisuje je i izlazi iz petlje.
        {
            printf(".");
            printf("\n");
            break;
        }
        else //inače, ispisujem slovo
        {
            printf("%c",unos);
        }
    }
    return 0;


}
__________________
"Who is your daddy and what does he do?"
Ivo_Strojnica je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Staro 03.05.2010., 20:26   #3
Ivo_Strojnica
PRO
Moj komp
 
Ivo_Strojnica's Avatar
 
Datum registracije: Apr 2010
Lokacija: Zagreb
Postovi: 4,714
A ovo je ako trebaš upisati cijelu rečenicu prvo.

Code:
#include <stdio.h>
#include <conio.h>


int main()
{
    char recenica[1000];
    char unos="a";
    int brojac = 0, i;
    printf("Upisite recenicu: ");

    while(1)     //upisuje se prvo recenica
    {
        unos=getche();
        recenica[brojac]=unos;
        if(unos== '.')
        {
            printf("\n");
            brojac++;
            break;
        }
        else
        {
            brojac++;
        }
    }

    for(i=0;i<brojac;i++)
    {
        unos=recenica[i];

        if(unos== ' ') //gledam da li je razmak
        {
            printf("\n");
        }
        else if(unos== '.')//ako je točka, ispisuje je i izlazi iz petlje.
        {
            printf(".");
            printf("\n");
            break;
        }
        else //inače, ispisujem slovo
        {
            printf("%c",unos);
        }
    }
    return 0;


}
__________________
"Who is your daddy and what does he do?"
Ivo_Strojnica je offline   Reply With Quote
Staro 03.05.2010., 22:03   #4
white34gle
Registered User
 
Datum registracije: May 2010
Lokacija: Slavonski Brod
Postovi: 4
odg

da, ova druga varijanta, sve radi!!!!!

dužnik sam ti, hvala puno!!!!!!!!!!!!!



s tim da prijatelju ovo unos='a' -> dakle moraju biti jednostruki navodnici
i char recenica[]={}; ovako ce biti manje memorije zauzeto, kada racunalo samo odredi koliko je treba

Zadnje izmijenjeno od: white34gle. 03.05.2010. u 22:19.
white34gle je offline   Reply With Quote
Staro 03.05.2010., 22:36   #5
Petar_M
Registered User
 
Datum registracije: Mar 2010
Lokacija: Brisel
Postovi: 44
A evo i rješenje na zadani problem u duhu jezika C++:

Code:
#include <iostream>
#include <string>
#include <sstream>
using namespace std;

int main()
{
	string recenica;
	getline(cin,recenica,'.');
	stringstream strTok(recenica);
	string rijec;
	while(strTok >> rijec)
		cout << rijec << endl;
}
Petar_M je offline   Reply With Quote
Staro 04.05.2010., 00:44   #6
Ivo_Strojnica
PRO
Moj komp
 
Ivo_Strojnica's Avatar
 
Datum registracije: Apr 2010
Lokacija: Zagreb
Postovi: 4,714
Citiraj:
Autor white34gle Pregled postova
char recenica[]={}; ovako ce biti manje memorije zauzeto, kada racunalo samo odredi koliko je treba
Ko će se svega sititi
__________________
"Who is your daddy and what does he do?"
Ivo_Strojnica je offline   Reply With Quote
Staro 04.05.2010., 06:33   #7
white34gle
Registered User
 
Datum registracije: May 2010
Lokacija: Slavonski Brod
Postovi: 4
hvala Petre, istina da ne kužim ama baš ni 2 naredbe u kompletu xD ali potrudit ću se
white34gle je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Odgovori



Pravila postanja
Vi ne možete otvarati nove teme
Vi ne možete pisati odgovore
Vi ne možete uploadati priloge
Vi ne možete uređivati svoje poruke

BB code je Uključeno
Smajlići su Uključeno
[IMG] kod je Uključeno
HTML je Isključeno

Idi na