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

Kako se porede dva string-a pomocu funkcije strcmp?

[es] :: C/C++ programiranje :: C/C++ za početnike :: Kako se porede dva string-a pomocu funkcije strcmp?

[ Pregleda: 2983 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

RMAN
Milan Đukić
student
Knićanin

Član broj: 32492
Poruke: 1166
213.244.208.*



+5 Profil

icon Kako se porede dva string-a pomocu funkcije strcmp?17.05.2006. u 17:57 - pre 189 meseci
Da li mozete da mi objasnite na najosnovnijem primeru?
Eureka!

MILAN DJUKIC
D J U K A
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.cmu.carnet.hr.

Sajt: www.dump.hr


Profil

icon Re: Kako se porede dva string-a pomocu funkcije strcmp?17.05.2006. u 18:04 - pre 189 meseci
Linearno.
Prolazi kroz oba niza dok ne dodje do razlicitog znaka ili kraja,
ako su razliciti znaci usporedjuje ih i vraca rezultat usporedbe,
ako je kraj niza onda vraca da su isti.
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
*.fsb.hr.



+9 Profil

icon Re: Kako se porede dva string-a pomocu funkcije strcmp?17.05.2006. u 18:16 - pre 189 meseci
Ovdje treba oprezan. Koliko sam upoznat, postoje razlike pri radu sa stringovnim funkcijama u ovisnosti o tome da li radite u Visual Studiu ili Borlandu. Primjerice, baš kod funkcije strcmp ona će vratiti 0 ili 1 (bool) u VS-u u ovisnosti o tome da li su nizovi isti ili se razlikuju, a ukoliko radite na Borlandu, strcmp će vratiti baš razliku ASCII vrijednosti prvih dvaju znakova zbog kojeg su nizovi različiti.

Uglavnom, funkcija vraća 0 ukoliko su nizovi isti bez obzira na razvojno okruženje.

[Ovu poruku je menjao itf dana 17.05.2006. u 19:18 GMT+1]
 
Odgovor na temu

RMAN
Milan Đukić
student
Knićanin

Član broj: 32492
Poruke: 1166
213.244.208.*



+5 Profil

icon Re: Kako se porede dva string-a pomocu funkcije strcmp?17.05.2006. u 18:53 - pre 189 meseci
Pa dajte mi neki primer (za borland). Znam i ja teoriju,treba da vidim u zadatku.
Eureka!

MILAN DJUKIC
D J U K A
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4890
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+633 Profil

icon Re: Kako se porede dva string-a pomocu funkcije strcmp?17.05.2006. u 19:08 - pre 189 meseci
Citat:

Pa dajte mi neki primer (za borland).

Koji Borlandov alat koristis?
Koliko se secam svaki Borlandov Help je bio sa obiljem primera, pa bi trebao da znas da ga koristis...

Citat:

Znam i ja teoriju,treba da vidim u zadatku.


Ovo je iz Borlandovog Helpa / C Runtime Library:
(izjavu o 'poznavanju' teorije necu da komentarisem)

Code:

#include <string.h>
#include <stdio.h>

int main(void)
{
   char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "ccc";
   int ptr;

   ptr = strcmp(buf2, buf1);
   if (ptr > 0)
      printf("buffer 2 is greater than buffer 1\n");
   else
      printf("buffer 2 is less than buffer 1\n");

   ptr = strcmp(buf2, buf3);
   if (ptr > 0)
      printf("buffer 2 is greater than buffer 3\n");
   else
      printf("buffer 2 is less than buffer 3\n");

   return 0;
}


P.S. Tema ce biti ovde jos koji sat, a posle toga ide u C++ za pocetnike...



[Ovu poruku je menjao X Files dana 17.05.2006. u 20:09 GMT+1]
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.cmu.carnet.hr.

Sajt: www.dump.hr


Profil

icon Re: Kako se porede dva string-a pomocu funkcije strcmp?17.05.2006. u 21:33 - pre 189 meseci
Citat:
itf: Ovdje treba oprezan. Koliko sam upoznat, postoje razlike pri radu sa stringovnim funkcijama u ovisnosti o tome da li radite u Visual Studiu ili Borlandu. Primjerice, baš kod funkcije strcmp ona će vratiti 0 ili 1 (bool) u VS-u u ovisnosti o tome da li su nizovi isti ili se razlikuju, a ukoliko radite na Borlandu, strcmp će vratiti baš razliku ASCII vrijednosti prvih dvaju znakova zbog kojeg su nizovi različiti.

Uglavnom, funkcija vraća 0 ukoliko su nizovi isti bez obzira na razvojno okruženje.

[Ovu poruku je menjao itf dana 17.05.2006. u 19:18 GMT+1]

To je tako nebitno... i netocno.

Standard propisuje da strcmp vraca:
a < 0 - ako je prvi manji od drugog
a == 0 - ako su jednaki
a > 0 - ako prvi veci od drugoga

Sad hoce li on vratiti 1 ili razliku znakova je totalno nebitno jer je i jedno i drugo kod ispravne provjere sa {>, <} tocna povratna vrijednost.
Inace, MSC++ 7.0 vraca ispravnu vrijednost i postuje standard.

Pozdrav.
 
Odgovor na temu

Mali Misha
Mihajlo Anđelković
NBGD

Član broj: 79396
Poruke: 379
*.powernet.bg.

ICQ: 195487525
Sajt: cpptea.com


+1 Profil

icon Re: Kako se porede dva string-a pomocu funkcije strcmp?17.05.2006. u 21:54 - pre 189 meseci
Citat:
NrmMyth:
a < 0 - ako je prvi manji od drugog
a == 0 - ako su jednaki
a > 0 - ako prvi veci od drugoga

Zapravo vrednosti bi trebale da budu -1, 0 i 1. Dakle signum razlike prvih znakova po kojima se stringovi razlikuju.

*edit
Code:
int sc(const char*a,const char*b)
{
    int res;
    
    while(*a==*b&&*a&&*b) a++,b++;

    res = *a - *b;

    return res<0?-1:!!res;
}


[Ovu poruku je menjao Mali Misha dana 17.05.2006. u 22:57 GMT+1]
Ipak se ++uje.
 
Odgovor na temu

DjoleReject
Djordje Knezevic
Zvezdara

Član broj: 85258
Poruke: 309
..njuel-bg.customer.sbb.co.yu.



+1 Profil

icon Re: Kako se porede dva string-a pomocu funkcije strcmp?18.05.2006. u 10:20 - pre 189 meseci

-1, 0, 1 bez obzira na okruzenje, to je C++ standard, a svako ko napravi prevodilac koji vraca nesto drugo - ne moze da se nazove C++om. U starijim verzijama su moguce razlike...
De si Deda...
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.net.t-com.hr.

Sajt: www.dump.hr


Profil

icon Re: Kako se porede dva string-a pomocu funkcije strcmp?18.05.2006. u 15:25 - pre 189 meseci
Citat:
Mali Misha: Zapravo vrednosti bi trebale da budu -1, 0 i 1. Dakle signum razlike prvih znakova po kojima se stringovi razlikuju.

http://www.cppreference.com/stdstring/strcmp.html
http://www.elook.org/programming/c/strcmp.html
http://www.eecs.tufts.edu/comp/15/cref/cref.html

Tko sad grijesi??
 
Odgovor na temu

Mali Misha
Mihajlo Anđelković
NBGD

Član broj: 79396
Poruke: 379
*.powernet.bg.

ICQ: 195487525
Sajt: cpptea.com


+1 Profil

icon Re: Kako se porede dva string-a pomocu funkcije strcmp?18.05.2006. u 18:55 - pre 189 meseci
Ko gresi? Onaj ko nije postavio pitanje "Ko je sad u pravu?". :)

Da objasnim: Naravno, po standardu se na kraj strcmp signum ne mora staviti. No pred postavljanje pitanja gore je autor trebao da uzme u obzir i uoptrebu konjuktiva (potentialis) u mom postu koji se u najgoru ruku moze shvatiti kao licno misljenje, premda je isto u stvari "uslovno tacno".

U svakom slucaju, izvinjavam se citaocima zbog davanja prednosti konkretizaciji a ne uopstenjima. :)
Ipak se ++uje.
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.net.t-com.hr.

Sajt: www.dump.hr


Profil

icon Re: Kako se porede dva string-a pomocu funkcije strcmp?18.05.2006. u 19:52 - pre 189 meseci
Eto ti ga djavle... filozofija...
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Kako se porede dva string-a pomocu funkcije strcmp?

[ Pregleda: 2983 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

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