Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Probleme Ginseng Microcarpa

Un sunet pronuntat la BMW e90 318i

Caut sugestii pentru achizitionar...

Acest LNB......
 Salarii compensatorii?

Recomandare service in Slatina pe...

De unde cumparati piese de schimb...

Iesirea din coproprietate
 Mouse wireless ergonomic cu bater...

Cum se calculeaza dobanda lunara ...

La mulți ani @driftking91!

Unde e recomandat sa ma cazez in ...
 Descarcator de supratensiune tip 2

ping digi?

Reparare "șanțuri&#...

De ce i se zice Mariei "Stapa...
 

functia strcmp

- - - - -
  • Please log in to reply
8 replies to this topic

#1
noobakaflo

noobakaflo

    Junior Member

  • Grup: Members
  • Posts: 68
  • Înscris: 02.01.2011
Salutare!
Am inteles ca functia strcmp returneaza :
-o valoare mai mica decat 0 daca primul este mai mare decat al doilea
-o valoare mai mare decat 0 daca al doilea sir este mai mare decat primul

Acuma,nu inteleg de ce afiseaza -1 in urma apelarii strcmp("abcd","abce"), si 1 pentru strcmp("abc","Abc").
Ce sa inteleg prin faptul ca sirul "abcd" este mai mare decat "abce" ? Amandoua au cate patru caractere... :D

#2
yonut_a

yonut_a

    Trala la la la

  • Grup: Senior Members
  • Posts: 3,948
  • Înscris: 03.08.2008
Ai inteles ce returneaza, dar nu ai inteles ce face si la ce este folosita.
Functia strcmp nu compara lunginea sirului de caractere ci codurile ascii pentru fiecare caracter in parte. si da "abcd" este mai mare decat "abce" din simplul motiv ca "e" > "d"

ai mai multe detalii aici http://www.cplusplus...cstring/strcmp/

#3
noobakaflo

noobakaflo

    Junior Member

  • Grup: Members
  • Posts: 68
  • Înscris: 02.01.2011
Pentru strcmp("abe","abc") afiseaza 1.
"e" > "c" (101>99) Oare de ce ? :photo:

P.S
Mi-am dat seama... "abe" <"abc" , "e">"c" Exact invers.

Multumesc pentru raspuns!

Edited by noobakaflo, 04 August 2011 - 10:27.


#4
johnnyl

johnnyl

    Junior Member

  • Grup: Members
  • Posts: 204
  • Înscris: 04.08.2004

 noobakaflo, on 4th August 2011, 10:51, said:

Salutare!
Am inteles ca functia strcmp returneaza :
-o valoare mai mica decat 0 daca primul este mai mare decat al doilea
-o valoare mai mare decat 0 daca al doilea sir este mai mare decat primul


 noobakaflo, on 4th August 2011, 11:17, said:

P.S
Mi-am dat seama... "abe" <"abc" , "e">"c" Exact invers.

Nu e exact invers, semnificatia valorilor returnate este exact invers decat ai scris-o tu: "< 0" inseamna ca primul sir este "mai mic" decat al doilea, "> 0" inseamna ca primul sir este "mai mare" decat al doilea (comparand codurile fiecarui caracter).

In cazurile tale:
abe > abc ('e' > 'c', strcmp() returneaza pozitiv)
abcd < abce ('d' < 'e', strcmp() returneaza negativ)

#5
noobakaflo

noobakaflo

    Junior Member

  • Grup: Members
  • Posts: 68
  • Înscris: 02.01.2011
^
"Daca sirurile sunt egale,functia strcmp returneaza valoarea 0.Daca primul este mai mare decat al doilea,returneaza o valoare mai mica decat 0.Daca al doilea sir este mai mare decat primul,functia strcmp returneaza o valoare mai mare decat 0. " Asa scrie in Manualul Fund. de Progr. de Kris Jamsa.

 johnnyl, on 8th August 2011, 12:53, said:

In cazurile tale:
abe > abc ('e' > 'c', strcmp() returneaza pozitiv)
abcd < abce ('d' < 'e', strcmp() returneaza negativ)

De asta am zis,ca e 'exact invers'. O fi gresit in carte? Mi se pare mai logic cum zici tu..

Edited by noobakaflo, 09 August 2011 - 00:06.


#6
catalinmacovei88

catalinmacovei88

    Member

  • Grup: Members
  • Posts: 903
  • Înscris: 30.07.2011
strcmp(s1, s2)
Returneaza <0 dacă s1<s2 ; =0 dacă s1=s2 ; >0 dacă s1>s2
Exemplu:
strcmp("ab","ab") returnează 0
strcmp("aab","abb") returnează un număr negativ
strcmp("za","z") returnează un număr pozitiv
strcmp("a","A") returnează un număr pozitiv deoarece codul ASCII al lui ‘a’ > codul ASCII al lui ‘A’

#7
johnnyl

johnnyl

    Junior Member

  • Grup: Members
  • Posts: 204
  • Înscris: 04.08.2004

 noobakaflo, on 9th August 2011, 01:04, said:

O fi gresit in carte? Mi se pare mai logic cum zici tu..

Daca scrie valorile returnate invers, cu siguranta e gresit. In ce carte te uiti?

#8
noobakaflo

noobakaflo

    Junior Member

  • Grup: Members
  • Posts: 68
  • Înscris: 02.01.2011

 johnnyl, on 9th August 2011, 17:12, said:

Daca scrie valorile returnate invers, cu siguranta e gresit. In ce carte te uiti?
"Manualul Fundamental de Programare in C si C++",de Dr.Kris Jamsa si Lars Klander

#9
secretalex92

secretalex92

    Active Member

  • Grup: Members
  • Posts: 1,496
  • Înscris: 28.12.2008

 noobakaflo, on 9th August 2011, 20:51, said:

"Manualul Fundamental de Programare in C si C++",de Dr.Kris Jamsa si Lars Klander
Schimba cartea e veche si greoaia.

Anunturi

Chirurgia endoscopică a hipofizei Chirurgia endoscopică a hipofizei

"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală.

Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate