Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 7 odgovora
  • 5.031 pregleda

Najnovija ↓

Razlika karaktera od space-a 16.03.2006. u 15:20 · pre 251 mesec #1
Da li u c++ postoji funkcija koja razlikuje karkter od razmaka
odnosno da li postoji nacin da se iz recenice cita string po string a da se razmak preskace.
npr:
hocu da izdvojim svaku rec posebno iz recenice
"Zasto slon ima crvene oci?"
1.Zasto
2.slon
3.ima
4.crvene
5.oci


Re: Razlika karaktera od space-a 16.03.2006. u 15:35 · pre 251 mesec #2
naravno da moze

uzimas karakter po karakter i proveravas da li je razmak ,
i razmak je karakter , u ascii tabeli ima oznaku 20h ili ti 20 u heksadecimalnom zapisu

npr:
Code:

main()
{

char recenica[300] = "Slon ima crvene oci";
int i;

for(i=0;i<sizeof(recenica);i++) if(recenica[i]=='\x20') recenica[i]= '\n';
printf("%s",recenica);
}


pisano na brzineu , ne zamerite ...
Re: Razlika karaktera od space-a 16.03.2006. u 15:57 · pre 251 mesec #3
Ako ostajes u oviru ascii skupa karaktera, postoji funkcija - vec pisano otome deset tema ispod...
Code:
#include <string.h>
  char *strtok( char *str1, const char *str2 );

Nije obavezno da razmak bude separator reci, nego moze i nesto drugo...
Re: Razlika karaktera od space-a 16.03.2006. u 18:28 · pre 251 mesec #4
Imao sam slican problem samo da napisem reci u obrnutom redosledu .
Neko mi je pomogao oko toga, i strtok lepo odradi posao, ali sam gledao
man stranicu u linuxu pa se valjda ne preporucuje ta f-ja, nego neka slicna (mozes pogledati).

Uglavnom, meni je radilo.

Da, bio je to idb . 10x :)

https://www.elitesecurity.org/t161339
Potpis
Mislim, šta reći !
Re: Razlika karaktera od space-a 16.03.2006. u 19:27 · pre 251 mesec
izmenjeno 1 put, poslednji put Mali Misha 16.03.2006. u 19:33
  1. Mali Misha16.03.2006. u 19:33zapis iz teksta poruke
#5
Ako ti ne smeta, mozes koristiti i int isspace(int); Ta vraca ne-nula ako mu je dat bilo koji space-karakter (Tab, Space, LF, CR, ...).

Code:
#include <ctype.h>

void f(const char*s)
{
    // ...
    
    while(*s)
    {
        if(isspace(*s))
        { /* ... */ }
        // ...

        s++;
    }
}


*edit* code skresan...
Potpis
Ipak se ++uje.
Re: Razlika karaktera od space-a 16.03.2006. u 22:37 · pre 251 mesec #7
Meni je ovo najljepsi nacin rastavljanja na rjeci :)

Code:

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string recenica,rijec[50];
    int i,b;
    b=1;
    getline(cin,recenica);
    for(i=0;i<recenica.length();i++)
    {
    if(recenica.substr(i,1)!=" ")
         rijec[b]=rijec[b]+recenica.substr(i,1);        
                                 
    if(recenica.substr(i,1)==" ")
          b++;
    }
    
    for(i=1;i<=b;i++)
    {
    cout<<rijec[i]<<"\n";
    }
       
    cout<<"\n";
    system("PAUSE");
}
Re: Razlika karaktera od space-a 17.03.2006. u 01:34 · pre 251 mesec #8
Recenicu mozes rastaviti jos pri ucitavanju.
Code:

#include <iostream>
#include <string>
#include <vector>

using namespace std;

int main()
{
    string rec;
    vector<string> recenica;
    cout << "Unesi jednu recenicu: ";
    while (cin >> rec) //citas reci sve do EOF (na Windows Ctrl+Z)
        recenica.push_back(rec);
    //sada u vectoru recenica imas izdvojene reci
    for (size_t i = 0; i != recenica.size(); ++i)
        cout << recenica[i] << endl;
}

Kad uneses recenicu pritisnes Enter pa onda pritisnes Ctrl+Z pa opet Enter da zavrsis ciklus. Kontrola ciklusa mozes izvesti i na drugi nacin. Na primer mozes citati recenicu dok ne naigjes na tacku kao zadni karakter:
Code:

do {
        cin >> rec;
        recenica.push_back(rec);
    } while (rec[rec.size() - 1] != '.');
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme