PC Ekspert Forum

PC Ekspert Forum (https://forum.pcekspert.com/index.php)
-   Web dizajn, programiranje i ostalo (https://forum.pcekspert.com/forumdisplay.php?f=39)
-   -   Pomoć za C++ (https://forum.pcekspert.com/showthread.php?t=187991)

white34gle 03.05.2010. 19:10

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
#include
#include
#include

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");
      }


Ivo_Strojnica 03.05.2010. 20:16

Rješenje tvoga problema.
Kod dinamički pregleda upisano znak, te po tvojim uvjetima odredi šta da radi s njim.
Code:

#include
#include


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;


}


Ivo_Strojnica 03.05.2010. 20:26

A ovo je ako trebaš upisati cijelu rečenicu prvo. :)

Code:

#include
#include


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     {
        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;


}


white34gle 03.05.2010. 22:03

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

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

:respekt::respekt::respekt::respekt::respekt::respekt::respekt::respekt:

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 :D

Petar_M 03.05.2010. 22:36

A evo i rješenje na zadani problem u duhu jezika C++:

Code:

#include
#include
#include
using namespace std;

int main()
{
        string recenica;
        getline(cin,recenica,'.');
        stringstream strTok(recenica);
        string rijec;
        while(strTok >> rijec)
                cout << rijec << endl;
}


Ivo_Strojnica 04.05.2010. 00:44

Citiraj:

Autor white34gle (Post 1636031)
char recenica[]={}; ovako ce biti manje memorije zauzeto, kada racunalo samo odredi koliko je treba :D

Ko će se svega sititi :)

white34gle 04.05.2010. 06:33

hvala Petre, istina da ne kužim ama baš ni 2 naredbe u kompletu xD ali potrudit ću se :D


Sva vremena su GMT +2. Sada je 11:45.

Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 1999-2024 PC Ekspert - Sva prava pridržana ISSN 1334-2940
Ad Management by RedTyger