Te zmienne nie są równe :/

0

Witam!!

Oto następny kod prostego programu:

#include <iostream.h>
#include <conio.h>
main()
{
char bufor[]="tak";
char bufor2[]="tak";
if(bufor==bufor2)
cout << "sa takie same!!";
else cout << "Sa rozne";
getch();
}

Kompiluje go, włączamm, i pokazuje mi się "Sa rozne" - czemu? Przecież widze że są takie same!

0

Porownujesz nie napisy tylko wskazniki na pierwsze znaki w napisie, a te wskazniki sa rozne

0

Do porownania łancuchow znakowych w stylu jezyka c mozesz uzyc funkcji strcmp()

0

Coś rozumiem, tylko jak ktoś mógłby mi powiedzieć jak sięużywa funkcji strcmp() - pierwszy raz o niej słysze :-P .Dzięki!!

0

microsoft pisze o tym tak:

http://msdn.microsoft.com/
Syntax
int StrCmp(LPCTSTR lpStr1,LPCTSTR lpStr2);
Parameters
lpStr1
[in] Pointer to the first null-terminated string to be compared.
lpStr2
[in] Pointer to the second null-terminated string to be compared.
Return Value

Returns zero if the strings are identical. Returns a positive value if the string pointed to by lpStr1 is greater than that pointed to by lpStr2. Returns a negative value if the string pointed to by lpStr1 is less than that pointed to by lpStr2.

Czyli twoj fragment porownujacy powinien wygladac mniej wiecej tak:

if (! StrCmp(bufor1,bufor2) )   cout<<"sa taie same"
else cout<<"sa rozne"
0

No i sredniki na koncu linijek oczywiscie .... (zapomnialo mnie sie) :]

0

w standardowej bibliotece strcmp jest pisane malymi literami :) :P

0

A w niestandardowej nie :b

;)

0

A ja tam wole stringi. :-P

0

A ja tam wole stringi. :-P

I tu sie pojawia pytanie: stringi czy gacie :d ;) :p :>

0

No tak... roznica jest zasadnicza... przy gaciach trzeba odchylic gacie zeby zobaczyc dupsko.... a przy stringach trzeba rozchylic dupsko, aby zobaczyc stringi :]

1 użytkowników online, w tym zalogowanych: 0, gości: 1