Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Stringovi nedefinisane duzine... kako?

[es] :: C/C++ programiranje :: Stringovi nedefinisane duzine... kako?

[ Pregleda: 2854 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

RMAN
Milan Đukić
student
Knićanin

Član broj: 32492
Poruke: 1166
*.zrlocal.net.



+5 Profil

icon Stringovi nedefinisane duzine... kako?11.02.2009. u 16:42 - pre 184 meseci
Kako da uradim da mi funkcija strlen vraca duzinu stringa ali da pri tom ja ne napisem kolike je duzine string?
Znaci u zavisnosti od toga sta otkucam funkcija mi vrati duzinu stringa.
Eureka!

MILAN DJUKIC
D J U K A
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
219.138.61.*

Sajt: www.mika.rs


+6 Profil

icon Re: Stringovi nedefinisane duzine... kako?11.02.2009. u 17:43 - pre 184 meseci
WTF Pa strlen to i radi ?! Stringovi se zavrsavaju sa NULL karakterom, a strlen vraca koliko karaktera ima do njega .... Zbunj
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
Odgovor na temu

RMAN
Milan Đukić
student
Knićanin

Član broj: 32492
Poruke: 1166
212.200.65.*



+5 Profil

icon Re: Stringovi nedefinisane duzine... kako?11.02.2009. u 18:03 - pre 184 meseci
Kao prvo string se ne zavrsava sa NULL vec sa '/O'.
Kao drugo ja treba da definisem dinamicki niz preko pokazivaca i ukoliko napisem dve reci u stringu strlen vraca samo duzinu prve reci(sve sto je posle razmaka ne vidi).
Eureka!

MILAN DJUKIC
D J U K A
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
219.138.61.*

Sajt: www.mika.rs


+6 Profil

icon Re: Stringovi nedefinisane duzine... kako?11.02.2009. u 18:20 - pre 184 meseci
Citat:
 Kao prvo string se ne zavrsava sa NULL vec sa '/O'.


Nece biti. String se zavrsava sa NULL karakterom iliti eskejp sekvencom '\0' (znaci broj 0, a ne slovo O), to je ekvivalent.

Citat:
Kao drugo ja treba da definisem dinamicki niz preko pokazivaca i ukoliko napisem dve reci u stringu strlen vraca samo duzinu prve reci(sve sto je posle razmaka ne vidi).


Onda radis nesto pogresno Daj kod da vidimo i reci sta ubacujes u string.
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4901
*.dynamic.sbb.rs.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Stringovi nedefinisane duzine... kako?11.02.2009. u 18:29 - pre 184 meseci
^
^
Pomesao si nesto.

NULL jeste isto sto i '\0' zabelezeno kao karakter (char), odnosno 0 zabelezeno kao celobrojna vrednost (int).

strlen() vraca duzinu stringa do prvog NULL-a, bez obzira da li je niz kreiran dinamicki ili za vreme kompajliranja. Razmaci u tekstu nemaju uticaj na strlen().

Ono sto tebe muci je nacin na koji scanf() funkcija u C/C++ funkcionise kada ima %s, pa kasnije ni strlen() ne obavi posao, jer je do 'greske' doslo ranije.

Code:

#include "stdio.h"
int main()
{
    char niz[1000];
    //scanf( "%s", &niz ); // <--- OVO IZBACI
    gets( niz ); // <--- OVO UBACI
    printf("%d\n", strlen(niz) );
    return 0;
}

Sada pogledaj rezultat.
 
Odgovor na temu

RMAN
Milan Đukić
student
Knićanin

Član broj: 32492
Poruke: 1166
*.zrlocal.net.



+5 Profil

icon Re: Stringovi nedefinisane duzine... kako?11.02.2009. u 19:02 - pre 184 meseci
Slucajno sam napisao \O jer sam kucao sa mobilnog telefona, znam da je \0 ali nisam znao da je NULL isto sto i \0.
Mene zanima u c++ u kako to da realizulem.

Odnosno necu da imam char promenljivu poznate duzine (kao npr. char[1000] ) vec hocu da mi funkcija strlen vraca vrednost stringa koji ima duzinu u zavisnosti sta ja unesem. Znam ja da uradim to u c-u i znam da treba funkcija gets ali ne znam kada charu nije definisana duzina.
Eureka!

MILAN DJUKIC
D J U K A
 
Odgovor na temu

night-shift
Vukašin Sadžak
• Student FTN, • Software developer
• Futog/Novi Sad

Član broj: 17930
Poruke: 1213
77.46.229.*

Sajt: www.netolerancija.com


+8 Profil

icon Re: Stringovi nedefinisane duzine... kako?11.02.2009. u 19:44 - pre 184 meseci
Napravi neku klasu String, koja će imati metodu getDuzina...
La parole est d'argent, mais le silence est d'or.
www.netolerancija.com
 
Odgovor na temu

pcaca
Aleksandar
Makedonija

Član broj: 5333
Poruke: 92
77.29.2.*



Profil

icon Re: Stringovi nedefinisane duzine... kako?11.02.2009. u 19:54 - pre 184 meseci
Citat:
RMAN: Slucajno sam napisao \O jer sam kucao sa mobilnog telefona, znam da je \0 ali nisam znao da je NULL isto sto i \0.
Mene zanima u c++ u kako to da realizulem.

Odnosno necu da imam char promenljivu poznate duzine (kao npr. char[1000] ) vec hocu da mi funkcija strlen vraca vrednost stringa koji ima duzinu u zavisnosti sta ja unesem. Znam ja da uradim to u c-u i znam da treba funkcija gets ali ne znam kada charu nije definisana duzina.

Moras negde alocirati opredelenu kolicinu memorije pre nego sto ucitas string on se mora negde smestiti. U primer koji ti je dao X Files nece duzina stringa biti 1000 karaktera nego je toliko alocirano kao buffer za string koj ce korisnik uneti, strlen ce vratiti duzinu stringa koji je korisnik uneo.

Ako bas zelis da "rucno" ne alociras memoriju opredelene duzine, a treba ti C++, onda koristi STL string.

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

int main()
{
    string s;
    getline(cin, s);
    cout << "Duzina stringa je: " << s.size() << endl;
    return 0;
}
 
Odgovor na temu

RMAN
Milan Đukić
student
Knićanin

Član broj: 32492
Poruke: 1166
*.zrlocal.net.



+5 Profil

icon Re: Stringovi nedefinisane duzine... kako?11.02.2009. u 21:02 - pre 184 meseci
E hvala! To mi je trebalo :)
Eureka!

MILAN DJUKIC
D J U K A
 
Odgovor na temu

[es] :: C/C++ programiranje :: Stringovi nedefinisane duzine... kako?

[ Pregleda: 2854 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.